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

se citeste o valoare n de la tastatura si apoi se citesc n numere naturale.SA SE CALCULEZA SUMA LEMENTELOR PARE DE PE POZITII IMPARE.
dau coroana!!! e probl de cls a 9 a.

Răspunsuri la întrebare

Răspuns de adrianalitcanu2018
1

Răspuns:

Mai jos se gaseste codul C++, iar dupaa fiecare instructiune considerata importanta, am adaugat un comentariu dupa simbolul // unde am explicat pas cu pas ce se intampla.

Explicație:

#include <iostream>

using namespace std;

int main()

{

   unsigned int n, v[100]; //declaram de tip unsigned int (intregi fara semn) n (numarul de numere naturale ale tabloului) v[100] (un tablou unidimensional, numit vector sau sir de numere)

   cout<<"n = ";

   cin>>n; //citim n

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

   {

       cout<<"v["<<i<<"] = ";

       cin>>v[i]; //citim fiecare componenta din vector

   }

   unsigned int suma; //declaram de tip unsigned int (intregi fara semn) suma (variabila ce va memora suma ceruta)

   suma=0; //initializam suma cu 0 (0 fiind elementul neutru al adunarii)

   for(int i=1;i<=n;i++) //parcurgem vectorul

       if(i%2==1 && v[i]%2==0) //testam pentru fiecare componenta din vector daca se afla pe o pozitie impara si daca valoarea acelei componente este para

           suma=suma+v[i]; //daca pozitia i este impara si v[i] este numar par, atunci adaugam la suma v[i], iar in caz contrar trecem mai departe

   cout<<"suma elementelor pare aflate pe poztii impare = "<<suma;

   return 0;

}


danboghiu66: La suma se adauga toate elementele de pe pozitiile impare. Insa cerinta este sa adaugam numai valorile pare.
adrianalitcanu2018: Nu am citit corect. La If este așa: If(i%2==1&&v[i]%2==0) suma=suma+v[i];
adrianalitcanu2018: Daca voi primi corectare voi adăuga și a doua parte din if.
danboghiu66: Poti sa scapi de prima prte din if (cea cu i%2==1) daca modifici putin bucla for: foloseste asta: for (int i = 1; i <= n; i +=2). Adica pornesti de la 1 si mergi din 2 in 2: adica pozitiile impare.
danboghiu66: multumesc
danboghiu66: Si nu mai ai nevoie de "suma=0; //initializam suma cu 0" deoarece ai facut suma=0 cind ai declarat-o
adrianalitcanu2018: Nici asta nu am văzut că am scris de doua ori. Rezolvarea a fost scrisă pe telefon.
adrianalitcanu2018: Cum am zis.. voi relua tot, daca voi putea. Seara frumoasa! :)
danboghiu66: La fel.
Alte întrebări interesante