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

Ce este gresit la algoritmul meu de la acesta problema? imi da doar 10 puncte... (problema 491 de pe pbinfo)
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.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului.
Date de ieşire
Programul afișează pe ecran numărul S, reprezentând suma calculată. Dacă în vectorul dat nu există nici un element par, se va afișa mesajul NU EXISTA.
Restricţii şi precizări
1 ≤ n ≤ 1000
elementele vectorului vor fi mai mici decât 100.000

Algoritmul meu:
#include

using namespace std;

int main()
{
int n, v[1000], i, s=0, ip=-1, iu=-1;
cin>>n;
for(i=1; i<=n; i++) cin>>v[i];

for(i=1; i<=n; i++)
{
if(v[i]%2==0)
ip=i;
break;
}
for(i=n; i>=1; i--)
{
if(v[i]%2==0)
iu=i;
break;
}
if(iu!=ip)
{
for(i=ip; i<=iu; i++)
{
s=s+v[i];
}
cout< if((iu==-1)&&(ip==-1)) cout<<"NU EXISTA";
if((iu=ip)&&(iu!=-1)&&(ip!=-1)) cout<
return 0;
}

Răspunsuri la întrebare

Răspuns de lucaciucandrei
10

Nu prea inteleg ce ai facut tu in cod deoarece nu esti clara in scriere si nu folosesti corect instructiunea break si nu folosesti corect variabila i

iti voi da solutia mea de 100 de puncte

#include<iostream>

using namespace std;

int main() {

int n, a[1000], f = -1, l = -1, s = 0, sem = 0;

cin >> n;

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

cin >> a[i];

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

if (sem == 0 && a[i] % 2 == 0) {

f = i;

sem++;

}

if (a[i] % 2 == 0) l = i;

}

for (int i = f; i <= l; i++)

s = s + a[i];

if (f == -1)

cout << "NU EXISTA";

else cout << s;

return 0;

}

Alte întrebări interesante