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.

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.

ex:

5 7 6 1 2 8 Explicație

17 = 6 + 1 + 2 + 8

1
1 e numar par?
Pai nu ,dar face suma cuprinsa intre primul numar par si ultimul nr par nu il intereseaza ce esteintre
int a[100],s=0,i,n,stop=0,x,y;
cout<<"n="; cin>>n;
for (i=1;i<=n;i++)
{
cout<<"a["<<i<<"]="; cin>>a[i];
if (a[i]%2==0&&stop==0)
{
x=i;
stop=1;
}
}
stop=0;
for (i=n;i>=1;i--)
if (a[i]%2==0&&stop==0)
{
y=i;
stop=1;
}
for (i=x;i<=y;i++)
s=s+a[i];
if (s==0)
cout<<"NU EXISTA";
else
cout<<"Suma este:"<<s;
MULTUMESC
cu placere ;)

Răspunsuri

2014-02-15T13:13:39+02:00
#include<iostream.h>

int main()
{
    int i, c1=-1, c2=-1;   //c1 retine pozitia primului numar par, c2 a ultimului numar par
    int n, v[20], S=0;
    cin>>n;
    for ( i=0 ; i<n ; i++)
        cin>>v[i];
    for ( i=0 ; i<n ; i++)
        if ( v[i]%2 == 0 ) {
            c1 = i;      //daca gasim un numar par, c1 ia valoare pozitiei lui (primul nr par)
            c2 = i;      // consideram ca nu mai exista alt numar par, deci c2=c1=i
            break;      //iesim din for, pentru ca am gasit primul numar par
        }
    for (i=c1, i<n ; i++)    //cautam alte numere pare, dupa primul
        if (v[i] % 2 == 0) 
            c2 = i;    //la finalul for-ului, c2 iese cu valoarea pozitiei ultimul numar par.
    if (c1 == -1)
        cout<<"Nu exista"<<endl;
    else {
        for (i=c1, i<=c2, i++)
            S=S+v[i];
        cout<<"Suma este "<<S<<endl;
    }
    return 0;
}

2 4 2