Cerinţa
Se dă un vector cu n numere întregi. Să se înlocuiască toate elementele nule din vector cu partea întreagă a mediei aritmetice a elementelor nenule din vector.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele vectorului.
Date de ieşire
Programul afișează pe ecran elementele vectorului, după înlocuire.
Restricţii şi precizări
1 ≤ n ≤ 200
elementele vectorului vor fi cuprinse între -1000 și 1000
vectorul va conține cel puțin un element nenul
Exemplu
Intrare
5
0 2 0 4 5
Ieșire
3 2 3 4 5
Răspunsuri la întrebare
Răspuns de
1
Idee de rezolvare:
Trecem prin elementele vectorului si cele care sunt nenule le facem media aritmetica.Daca un element este 0 atunci ii atribuim media aritmetica cu partea intreaga.
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int v[200],n,i,S=0,k=0;
float Ma;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
for(i=1;i<=n;i++)
if(v[i]>0)
{
S=S+v[i];
k=k+1;
}
Ma=S/k;
Ma=floor(Ma);
for(i=1;i<=n;i++)
if(v[i]==0)
v[i]=Ma;
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}
Trecem prin elementele vectorului si cele care sunt nenule le facem media aritmetica.Daca un element este 0 atunci ii atribuim media aritmetica cu partea intreaga.
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int v[200],n,i,S=0,k=0;
float Ma;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
for(i=1;i<=n;i++)
if(v[i]>0)
{
S=S+v[i];
k=k+1;
}
Ma=S/k;
Ma=floor(Ma);
for(i=1;i<=n;i++)
if(v[i]==0)
v[i]=Ma;
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}
Alte întrebări interesante
Biologie,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă