👤

ce-i greșit la algoritmul ăsta? ( Asta e cerința: Se citește un vector cu n elemente, numere naturale. Să se determine suma valorilor elementelor cuprinse între primul și ultimul element par al vectorului, inclusiv acestea.) Trebuie să-l încarc pe pbinfo. Am făcut asta și primesc doar 80 de puncte.
#include
using namespace std;
int main ()
{
int S, n, A[1000], i, a, b;
S=a=b=0;
cin>> n;
for ( i=1; i<=n; i++)

cin>> A[i];

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


if(A[i]%2==0)

a=i;
}


for( i=n; i>=1; i--)

{


if( A[i]%2== 0)
b=i;
}

for (i=b; i<=a; i++)
S= S+ A[i];
if( S>0)
cout<< S;
if (S==0)
cout<< "NU EXISTA";



return 0;
}


Răspuns :

#include <iostream>
using namespace std;
int main ()
{
int S, n, A[1005], i, a, b;
S=a=b=0;
cin>> n;
for ( i=1; i<=n; i++)

cin>> A[i];

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


if(A[i]%2==0)

a=i;
}


for( i=n; i>=1; i--)

{


if( A[i]%2== 0)
b=i;
}

for (i=b; i<=a; i++)
S= S+ A[i];
if(a!=b)
cout<< S;
else
cout<< "NU EXISTA";



return 0;
}




//Am editat răspunsul :)) Acum e programul tău - corectat - scoate 100 pe pbinfo
De fapt greseala este ca dupa ce parcurgi primul sir de la 1 la n si cauti primul element par ai uitat sa ii dai "break" si al cel impar lafel. Sau daca nu vrei sa folosesti break pleci cu un "ok=0" si il negi in for si e tot lafel ca break