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

Se da fisierul text "vectori.txt" care contine n elemente. Scrieti algoritmul astfel incat dupa fiecare al treilea element sa se insereze suma celor 3 elemente precedente.
exemplu:
"vectorii.txt"
n=12
1 2 3 4 5 6 7 8 9 10 11 12
rezultat:
1 2 3 6 4 5 6 15 7 8 9 24 10 11 12 33

DAU COROANĂ

Răspunsuri la întrebare

Răspuns de Norby9
1

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

#define nmax 200 // aici pui numarul maxim de elemente pe care il poti avea

ifstream read("vectori.txt");

int n, a[nmax + 1], x, sum, nrElem, i;

int main() {

 read >> n;  

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

   read >> x;

   a[++nrElem] = x;

   if(i % 3 == 0) {

     sum += x;

     a[++nrElem] = sum;

     sum = 0;

   } else {

       sum += x;

   }

 }

 for(i = 1; i <= nrElem; ++i) {

   cout << a[i] << " ";

 }

 return 0;

}

Explicație:

Ideea pe care am implementat-o e una simpla : pe masura ce citesc cele n elemente le pun in vector si, intre timp, in variabila suma adun elementele la care sunt....daca sunt pe o pozitie divizibila cu 3 (multiplu de 3) atunci nu uit sa adun elementul curent si il pun in vector, daca nu este pe o pizitie "din 3 in 3 " atunci il adaug la suma curenta....in final afisez elementele .... Bafta !!!

Alte întrebări interesante