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

Nu stiu cum sa afisez exact 2 zecimale dupa virgula. Ma poate ajuta cineva?



Cerinţa
Să se scrie un program care citeşte de la tastatură un număr natural n şi apoi un şir de n numere naturale şi determină media aritmetică a celor prime.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale.

Date de ieşire
Programul afișează pe ecran numărul M, reprezentând media aritmetică a valorilor prime.

Restricţii şi precizări
0 < n < 1000;
cele n numere citite vor fi mai mici decât 10000;
rezultatul se va afişa cu cel puțin două zecimale exacte;
în toate testele, printre cele n numere va exista cel puțin un număr prim.
Exemplu:
Intrare

5
8 7 5 9 11
Ieșire

7.66



Acesta este codul meu



#include
#include
#include
using namespace std;
int main()
{ unsigned n,i,d,p,k,x,S;
cin>>n;
k=0;
S=0;
for(i=1;i<=n;i++)
{
cin>>x;
p=2;
for(d=2;d<=(sqrt(x));d++)
if(x%d==0)
p=p+2;
if(sqrt(x)==(int)(sqrt(x)))
p=p-1;
if(p==2)
{
k=k+1;
S=S+x;
}
}
cout<<(float)S/k;
return 0;
}

Răspunsuri la întrebare

Răspuns de GabiAlex99
0

#include<iostream>

using namespace std;

int main()

{

int n, nr, prim, i, div;

float suma=0, nrprim=0, M;

cin>>n;

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

{

cin>>nr;

prim=1;

for(div=2;div*div<=nr;div++)

if(nr%div==0) prim=0;

if(nr<2) prim=0;

if(prim==1) { suma=(suma+nr); nrprim=nrprim+1; }

}

M=float(suma/nrprim);

M=M*100;

M=(int)M;

M=M/100;

cout<<M;

}

Alte întrebări interesante