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

Imi poate spune cineva cu ce am gresit la cod?
EX:
Cerința
Se dau n numere naturale. Considerăm poziţiile lor numerotate de la 1 la n.
Să se determine cea mai mare valoare memorată pe o poziţie pară şi cea mai mică valoare de două cifre aflată pe o poziţie impară.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire
Programul va afișa pe ecran numerele x şi y, pe același rând și separate prin spațiu, reprezentând, în ordine, cele două valori calculate.
În cazul în care nu sunt valori de două cifre pe poziții impare se va afișa -1 în contul valorii y.

Restricții și precizări
2 ≤ n ≤ 20
cele n numere citite vor fi mai mici decât 1.000.000.000

Exemplu
Intrare

5
1 3 3 4 8
Ieșire

4 -1
Explicație
Cea mai mare valoare de pe o poziție pară este 4 și nu avem numere de două cifre pe poziții impare.


#include
using namespace std;
int main()
{
unsigned long long n,i,nr,x=0,y=100,imp=0;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>nr;
if(i%2==0)
{
if(nr>x && nr%2==0)
{
x=nr;
}
}
if(i%2==1)
{
if(nr 9 && nr<100) && nr%2==1)
{
y=nr;
imp=12345;
}
}
}

cout< if(imp==0)
cout<<"-1";
else
cout< return 0;
}

Răspunsuri la întrebare

Răspuns de AlexCz
1

Răspuns:

#include <iostream>  

using namespace std;

int main()

{

   unsigned n, nr, x=0, y=1000000000;

   bool ok = false;

   cin >> n;

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

       cin >> nr;

       if(i%2 == 0){

           if(nr > x)

               x = nr;

       }

       else{

           if(nr >= 10 && nr <= 99)

               if(nr < y){

                   ok = true;

                   y = nr;

               }

       }

   }

   cout << x << ' ';

   if(ok == true)

       cout << y;

   else

       cout << -1;

}    


Nicu1000: Mersi!
andrei122390: Ajutor pls
Alte întrebări interesante