Se citeste un vector de n intregi. Eliminati toate aparitiile celui mai mare element din vector si afisati noul vector. ex: v=(4, 5, 9, 8, 9), se va elimina 9 si v=(4, 5, 8)
eu am facut asa, ar fi foarte bine daca mi-ar corecta cineva programul meu.
#include
using namespace std;
unsigned short int maxx(int v[100], int n)
{
unsigned short 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;
}
Răspunsuri la întrebare
Răspuns de
1
#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];
alinutalioana:
multumesc foarte mult! as vota ca raspuns favorit, dar nu stiu cum
Răspuns de
1
#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]
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Germana,
9 ani în urmă
Limba română,
9 ani în urmă