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
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!
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Istorie,
8 ani în urmă
Fizică,
9 ani în urmă
Fizică,
9 ani în urmă