Informatică, întrebare adresată de triscamihai, 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.

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


argareta: 1 e numar par?
triscamihai: Pai nu ,dar face suma cuprinsa intre primul numar par si ultimul nr par nu il intereseaza ce esteintre
AlexMihai97: 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;
triscamihai: MULTUMESC
AlexMihai97: cu placere ;)

Răspunsuri la întrebare

Răspuns de Bogdan94
10
#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;
}

Alte întrebări interesante