Se citeşte un număr natural n de la tastatură, apoi se citesc n numere întregi într-un tablou unidimensional. Să se determine cel mai mare număr citit şi poziţiile pe care acest număr apare în tablou.

1
#include <iostream.h>
void main()
{
int n,v[100],max=0;
cout<<"n=";cin>>n;
for(int i=0;i<n;i++)
{cout<<"v["<<i<<"]=";
cin>>v[i];
}
max=v[0];
for(i=1;i<n;i++)
if(v[i]>max)
max=v[i];
//buun problema iti cere sa afisezi POZITILE pe
care se afla numarul
cout<<max<<endl;
for(i=0;i<n;i++)
if(v[i]==max);
cout<<i<<endl; }

Răspunsuri

2014-02-02T23:09:38+02:00
Citeste nr n si apoi cele n numere le citesti si le pui intr-un vector a[n].
Pe urma mai declari 2 variabile int max, pozitie; Pe max il initializezi cu primul elemnt din vectorul a, adica a[0] si pozitie cu 0. Urmeaza sa parcurgi vectorul a de la 1 pana la n-1 iar daca numarul curent, a[i] sa zicem, e mai mare ca max atunci salvezi valoarea lui in max si pozitia lui, adia i, in variabila pozitie. La sfarsit afisezi max si pozitie.

P.S. Daca vrei poti sa nu mai folosesti vectorul. Citesti mai intai primul numar si initializezi max cu el si pozitie cu 0, iar pe masura ce o sa citesti celelalte n-1 numere faci aceleasi comparatii ca mai sus si afli raspunsul. Astfel economisesti memorie, mai exact cam sizeof(int)*(n-1).