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

#295 pe pbinfo
de ce imi da doar 60p?
#include

using namespace std;
int n,ok,i,v[1001];
int main()
{
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
for(i=1;i<=n;i++)
{
if(v[i]%2==0&&v[i+1]%2==0&&v[i-1]%2==0)
ok=1;
}
for(i=1;i<=n;i++)
{
if(v[i]%2==1&&v[i+1]%2==1&&v[i-1]%2==1)
ok=1;
}
if(ok==1)
cout<<"DA";
else
cout<<"NU";
return 0;
}

Răspunsuri la întrebare

Răspuns de tanasaradu
0

Ai solutia atasata mai jos.Poti sa te uiti sa vezi ce gresesti

Anexe:

xEminescu123: dar imi poti spune de ce scriem for(i=2;i
Răspuns de xmrkertesx
0

Răspuns:

Ai sursa atasata.

Explicație:

Vectorul trebuie sa fie parcurs de la 2 la n-1 nu de la 1 la n deoarece tu acesezi v[i-1] si v[i+1] iar in unele cazuri accesezi v[0] respectiv v[n+1] ceea ce ar putea due la CFS11 dar nu in caazul tau pentru ca ai pus lungimea vectorului 1001 nu 101.

Cred ca iti da raspuns gresit elementele vectorului sun toate 0 deoarece l-ai declarat global iar elementul cand verifici elementul v[1] sau v[n] exisita cateva probleme daca ele sunt pare.

Testeaza programu tau pentru exemplul urmator si o sa iti dai seama.

6

6 2 3 5 4 8

Anexe:

xmrkertesx: La sursa atasata poti pune vectorul de tipul bool/bistet pentru o memorie mai buna :)
xmrkertesx: Coroana pls :)
Alte întrebări interesante