Informatică, întrebare adresată de OgSwag, 9 ani în urmă

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.

Intrare
5
7 6 1 2 8

Ieșire
17

#include
using namespace std;
int v[100],s,u,p,i,n;
int main()
{
cin >> n;
p=0;
u=0;
s=0;
for(i=1;i<=n;++i)
cin >> v[i];
for(i=1;i<=n;++i)
{
if(v[i]%2==0)
{
p=v[i];
}
break;
}
for(i=p;i<=n;++i)
{
if(v[i]%2==0)
u=v[i];
}
for(i=p;i<=u;++i)
s+=v[i];
cout << s;
return 0;
}

Asta am incercat eu dar nu imi da raspunsul cerut!

Răspunsuri la întrebare

Răspuns de ap53
2
In loc sa memorezi indicii in p si u, tu ai memorat valorile elementelor. In plus, la for-ul pentru p ai pus break in afara instructiuniin if, iar la for-ul pentru u nu ai mai pus deloc break si, in plus, trebuia parcurs vectorul incepand de la ultimul element. Cam multe erori.
Ti-am atasat programul corect.
Anexe:

OgSwag: Tot nu .
OgSwag: Am incercat varianta din comentariu dar de data asta nici raspunsul ( 17 ) nu imi mai da
OgSwag: #include <iostream>
using namespace std;
int v[1005],s,u,p,i,n;
int main()
{
cin>>n;
for(i=0;i<n;++i)
cin >> v[i];
p=-1;
u=-1;
for(i=0;i<n;++i)
if(v[i]%2==0)
{
if(p==-1)
p=1;
u=1;
}
if(p!=-1)
{
s=0;
for(i=p;i<=u;++i)
s+=v[i];
cout << s;
}
else
cout << "NU EXISTA";
return 0;
}
ap53: Aceasta e solutia corecta (pe care o scriu in continuare). Am stat acum sa verific. Aceea era cea oficiala si nu stau s-o corectez.
ap53: #include <iostream>
using namespace std;
int v[1001],s,u,p,i,n;
int main()
{
cin>>n;
for(i=1;i<=n;++i)
cin >> v[i];
p=-1;
for(i=1;i<=n;++i)
{
if(v[i]%2==0)
{
p=i;
break;
}
}
for(i=n;i>=p;++i)
{
if(v[i]%2==0)
{
u=i;
break;
}
}
if(p!=-1)
{
for(i=p;i<=u;++i)
s+=v[i];
cout<<s;
}
else
cout<<"NU EXISTA";
return 0;
}
OgSwag: Las-o balta, nici unul din raspunsuri nu este corect, nici macar acesta, o lalaim de prea mult timp, o sa consult un profesor.
ap53: #include <iostream>
using namespace std;
int v[1000],u,p,i,n,s;
int main()
{
cin>>n;
for(i=0;i<n;++i)
cin>>v[i];
p=-1;
for(i=0;i<n;++i)
if(v[i]%2==0)
{
p=i;
break;
}
for(i=n-1;i>=0;--i)
if(v[i]%2==0)
{
u=i;
break;
}
s=0;
if(p!=-1)
{
for(i=p;i<=u;++i)
s+=v[i];
cout<<s;
}
else
cout<<"NU EXISTA";
return 0;
}
ap53: Vinovat esti TU c-ai dat un enunt incomplet. Eu ma chinui aici sa te ajut si tu ma jignesti. Tu te lalai.
ap53: Ultima solutie e de 100 puncte. Crezi ca eu numai de problema asta ma ocup? Asta e prea simpla pentru mine si ma plictisea sa ti-o rezolv. Dar eu imi pierd timpul pentru tine si tu ma jignesti.
ap53: Altadata nu te mai ajut.
Alte întrebări interesante