Informatică, întrebare adresată de Vinnie, 9 ani în urmă

Se da un sir A cu n elemente numere naturale. Sa se insereze intre oricare doua componente alaturate media aritmetica a celoralte n-2 componente.
Exemplu: pentru n=4 si vectorul A=(1,2,3,4) se va forma vectorul A=(1, 3.5, 2, 2.5, 3, 1,5, 4).


Razzvy: restrictii?

Răspunsuri la întrebare

Răspuns de Razzvy
2
#include <iostream>using namespace std;
int main(){   
//Vom folosi un al doilea vector pentru a scrie media aritmetica a fiecaror (n-2) elemente   
int v[1000], n;    double u[2000], s = 0;   
//Citirea vectorului   
cin>>n;   
for(int i = 0; i < n; ++i){       
cin>>v[i];       
s += v[i]; //suma elemenelor vectorului   
}   
//vectorul final va avea n + (n - 1) elemente   
u[0] = v[0];   
for(int i = 1; i < n; ++i){       
u[2 * i] = v[i];  //Rescriearea elementelor lui v       
//Am putea calcula suma celor n-2 elemente de fiecare data, dar asta ar consuma mai mult timp, asa ca am clculat la inceput suma tuturor elementelor vectorului si le scad pe celelalte 2       
u[2 * i - 1] = (s - v[i] - v[i - 1]) / (n - 2); //Daca nu-l declaram pe s double, atunci nu facea impartirea cu virgula, ci cu rest   
}   
for(int i = 0; i < 2 * n - 1; ++i)       
 cout<<u[i]<<' ';
}

Vinnie: Desi m-am gandit sa folosesc un al doilea vector, nu eram sigura cum l-as fi putut insera in primul. Multumesc mult!
Alte întrebări interesante