Informatică, întrebare adresată de alexmysulica, 8 ani în urmă

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;
}


Merymerisor: Buna! Imi poti da ID ul problemei si site-ul?
alexmysulica: https://platforma-de.info/problema/primul-maxim-minim

Răspunsuri la întrebare

Răspuns de Merymerisor
1

#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;

}

Răspuns de ciprianb932
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;

}

Alte întrebări interesante