In C++

Cerinta
Se citeste de la tastatura un numar natural N urmat mai apoi de N numere naturale. Sa se afiseze elementele care au valoare maxima si minima, impreuna cu prima pozitie in care acestea au aparut.



Date de intrare
Pe prima linie se va afla variabila N, iar pe cea de a doua linie cele N numere naturale.



Date de iesire
Se va afisa valoarea maxima si minima urmate mai apoi de pozitiile acestora in vector. Toate aceste valori sunt separate prin cate un spatiu.



Restrictii si precizari
0 < N < 1,000
Indicii vectorului incep de la 0

Exemplu
Date de intrare Date de iesire
4
11 31 39 2 39 2 2 3

Eu am facut varianta asta, dar primesc doar 25 pct

#include
using namespace std;
int main()
{
int v[1001];
int n,pozmax=0,pozmin=0;
int max, min;
cin>>n;
for (int i=0; i >v[i];
}
max=-1000000000;
min=1000000000;
for (int i=0;i max)
{
max=v[i];
pozmax=i;
}
}
cout< return 0;
}

Răspuns :

#include <iostream>

using namespace std;

int main()

{

   int n, v[1001], i;

   cin>>n;

   for(i=0;i<n;i++)

       cin>>v[i];

   int mini, maxi;

   //in primul rand, vom cauta valorile minime si maxime din vector

   mini=v[0]; maxi=v[0];

   //presupunem ca cea mai mica si cea mai mare valoare din vector este primul element

   for(i=1;i<n;i++)

   {

       if(v[i]>maxi)

           maxi=v[i];

       if(v[i]<mini)

           mini=v[i];

   }

   cout<<"Valoarea minima din vector este "<<mini<<endl;

   cout<<"Valoarea maxima din vector este "<<maxi<<endl;

   //acum cautam prima pozitie a acestora

   int pozmini, pozmaxi;

   i=0;

   while(v[i]!=mini)

       i++;

   //in momentul in care iese din repetitiva, i reprezinta pozitia primei aparitii a minimului

   pozmini=i;

   //analog pentru maxim

   i=0;

   while(v[i]!=maxi)

       i++;

   pozmaxi=i;

   cout<<"Prima pozitie pe care se afla valoarea minima este "<<pozmini<<endl;

   cout<<"Prima pozitie pe care se afla valoarea maxima este "<<pozmaxi;

   return 0;

}

#include <iostream>

using namespace std;

int main()

{unsigned n, i, min, pmin, max, pmax;

cin>>n;

unsigned v[n+1];

cin>>v[0];

max=min=v[0];

pmin=pmax=0;

for(i=1; i<n-1; i++)

{ cin>>v[i];

if(v[i]<min)

{ min=v[i];

pmin=i;

}

if(v[i]>max)

{ max=v[i];

pmax=i;

}

}

cout<<max<<" , "<<min<<" pe pozitiile "<<pmax+1<<" , "<<pmin+1;

return 0;

}