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

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 ArMyFoRHeLL
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;
}
   

Alte întrebări interesante