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:
#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 !!!