Răspuns :
#include <iostream>
using namespace std;
unsigned short int maxx(int v[100], int n)
{
int i, maxx=-2000000000;
for(i=1; i<=n; i++)
{if(v[i]>maxx)
maxx=v[i];}
return maxx;}
int main()
{int i, n, m, v[100];
cout<<"n=";cin>>n;
for(i=1; i<=n; i++)
{cout<<"vector=";
cin>>v[i];}
m=maxx(v, n);
for(i=1; i<=n; i++)
{if(v[i]!=m)
cout<<v[i]<< " ";
}
return 0;
}
Erau doua greseli:
1. Cand initializai maxx=-20000000 il initializai cu unsigned deci in loc sa iti puna cu - iti punea cu plus. Sterge unsigned pt ca asta inseamna fara semn adica mereu pozitiv. Ajunge int.
2. ai uitat o acolada dupa cin >> v[i];
using namespace std;
unsigned short int maxx(int v[100], int n)
{
int i, maxx=-2000000000;
for(i=1; i<=n; i++)
{if(v[i]>maxx)
maxx=v[i];}
return maxx;}
int main()
{int i, n, m, v[100];
cout<<"n=";cin>>n;
for(i=1; i<=n; i++)
{cout<<"vector=";
cin>>v[i];}
m=maxx(v, n);
for(i=1; i<=n; i++)
{if(v[i]!=m)
cout<<v[i]<< " ";
}
return 0;
}
Erau doua greseli:
1. Cand initializai maxx=-20000000 il initializai cu unsigned deci in loc sa iti puna cu - iti punea cu plus. Sterge unsigned pt ca asta inseamna fara semn adica mereu pozitiv. Ajunge int.
2. ai uitat o acolada dupa cin >> v[i];
#include<iostream>
In primul rand fiindca ai pus unsigned , variabila ta "maxx" va fi mereu pozitiva.
Daca ai numai numere negative, maxx va fi gresit.
Am verificat ce numar printeaza un unsigned int daca este asignat cu -2000000000 si mi-a dat 2294967296 .
In orice caz, nu initializa variabila maxx cu o constanta, in schimb scrie inainte de for initalizeaza maxx= v[1]. Cum maxx este initializat cu v[1] poti incepe de la 2 for(int i=2;i<=n;i++) . In rest programul pare corect.
Nu stiu daca asa v-a invatat la scoala, dar in C vectorii incep de la 0 si nu de la 1, deci ar trebui ca in loc de for(int i=1;i<=n;i++) sa scrii for(i=0;i<n;i++). Nu e neaparat gresit sa incepi de la 1 dar daca de exemplu ai un vector pe care ti-l declari direct, adica int vector[] = {1,2,3,4,5,6} 1 va fi vector[0] si nu vector[1]
In primul rand fiindca ai pus unsigned , variabila ta "maxx" va fi mereu pozitiva.
Daca ai numai numere negative, maxx va fi gresit.
Am verificat ce numar printeaza un unsigned int daca este asignat cu -2000000000 si mi-a dat 2294967296 .
In orice caz, nu initializa variabila maxx cu o constanta, in schimb scrie inainte de for initalizeaza maxx= v[1]. Cum maxx este initializat cu v[1] poti incepe de la 2 for(int i=2;i<=n;i++) . In rest programul pare corect.
Nu stiu daca asa v-a invatat la scoala, dar in C vectorii incep de la 0 si nu de la 1, deci ar trebui ca in loc de for(int i=1;i<=n;i++) sa scrii for(i=0;i<n;i++). Nu e neaparat gresit sa incepi de la 1 dar daca de exemplu ai un vector pe care ti-l declari direct, adica int vector[] = {1,2,3,4,5,6} 1 va fi vector[0] si nu vector[1]
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Ne dorim ca informațiile furnizate să vă fi fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Revenirea dumneavoastră ne bucură, iar pentru acces rapid, adăugați-ne la favorite!