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
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
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă