Documente Academic
Documente Profesional
Documente Cultură
Pentru a afișa zecimalele unui număr real fără rotunjire, va trebui să recurgem la niște artificii.
Date de intrare
Programul citește de la tastatură trei numere naturale x, y, z, reprezentând notele.
Date de ieşire
Programul afișează pe ecran media calculată, cu exact două zecimale, fără
rotunjire.
Restricții și precizări
cele trei numere citite sunt mai mari decât 0 și mai mici sau egale cu 10
media se va afișa cu exact două zecimale, fără rotunjire
Exemplul 1
Date de intrare
9 9 7
Date de ieșire
8.33
Exemplul 2
Date de intrare
9 8 7
Date de ieșire
8.00
înmulţim pe M cu 100
aflăm partea întreagă
împărţim la 100.0
1 #include <iostream>
2 #include <iomanip>
3 using namespace std;
4 int main()
5 {
6 int x,y,z;
7 float m;
8 cin>>x>>y>>z;
9 m=(x+y+z)/3.;
10 m=(int)(m*100)/100.;
11 cout<<fixed<<setprecision(2)<<m;
12 return 0;
13 }
(a+b+c)*100/3=(10+9+7)*100/3=26*100/3=2600/3=866
Vom afișa cătul 866/3, adică 8, apoi punctual zecimal, după care afișăm
866%100, adică 66 (cele două zecimale).
În cazul particular, când media nu are zecimale, ca de exemplu, a=7, b=9, c=8,
cand media trebuie afișată cu două zecimale egale cu zero, avem:
(a+b+c)*100/3=(7+9+8)*100/3=2400/3=800
Câtul 800/100 este 8, iar restul 800%100 este 0. Prin urmare, trebuie să afișăm
separate cel de-al doilea zero de la partea zecimală.
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 int a, b, c, m;
6 cin>>a>>b>>c;
7 m=(a+b+c)*100/3;
8 cout<<m/100<<"."<<m%100;
9 if(m%100%10==0)
10 cout<<0;
11 return 0;
12 }