Buna ! de ce primesc la asta 90 p ? nu imi dau seama ce am gresit
#290
Cerinţa
Se dă un şir cu n elemente, numere întregi. Să se verifice dacă elementele pare din şir sunt ordonate crescător.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale şirului, separate prin spaţii.
Date de ieşire
Programul afișează pe ecran mesajul DA, dacă elementele pare din şir sunt ordonate crescător, respectiv NU în caz contrar.
Restricţii şi precizări
1 ≤ n ≤ 100
elementele şirului vor fi cuprinse între -10000 şi 10000
şirul va conţine cel puţin un număr par
Exemplu
Date de intrare
5
2 7 6 10 5
Date de ieșire
DA
rezolvarea mea este:
#include
using namespace std;
int main()
{
int n, v[102];
bool ok = true;
cin >> n;
for(int i = 1; i <= n; i++)
cin >> v[i];
for(int i = 2; i < n; i+=2)
if(v[i] > v[i+2])
ok = false;
if(ok)
cout << "DA";
else
cout << "NU";
return 0;
}
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int n, i, v[102], a,crescator;
int main()
{
cin >> n;
for (i=0; i<n; ++i)
cin >> v[i];
i=0;
while (v[i]%2!=0) ++i;
a=v[i]; ++i;
crescator=1;
while (i < n)
{
if (v[i]%2==0)
{
if (v[i]<=a) {crescator=0; break;}
else { a=v[i]; }
}
++i;
}
if (crescator) cout << "DA";
else cout << "NU";
}
Explicație:
eu cândva am rezolvat această problemă fără vector, dar pentru tine acum am folosit vector.. codul e testat la 100 p, pe pbinfo
Algoritmul:
- am citit n şi numerele pe care le+am plasat în vector;
- am căutat primul par, pe care l-am dat lui a;
- parcurg mai departe vectorul şi dacă găsesc par, verific creşterea. Dacă nu e bine opresc ciclul, altfel actualizez a, pentru ca să pot compara următorul par cu el să verific creşterea.
Despre care coroană merge vorba? Am mai văzut de multe ori folosită aici expresia asta şi nu ânţeleg despre ce merge vorba.. Mulţumesc
if(v[i] > v[i+2])
ok = false;
Mă miră faptul că parcurgi numai indicii pari... sau eu nu văd codul întreg...