C++-ban hogyan számoljak átlagot?
Akárhogy próbálozom, ne irja ki a tizedes számot,csak az egész részt. Igy néz ki a programom:
.....
int a, b,c;
float atlag;
cin>>a;
cin>>b;
cin>>c;
atlag=(a+b+c)/3;
cout<<atlag;
}
úgy is próbáltam, hogy cout<<float(atlag); , de igyse sikerül :(
Az (a+b+c)/3 értéke int lesz. Azért, mert (a+b+c) értéke int, hiszen 3 int összeadása int-et eredményez, és mivel int-tel osztod (int/int), egészosztást alkalmaz, aminek az eredménye int.
Az így kapott int eredmény float-tá konvertálódik, mivel az "atlag" típusa float, de a konverzió során ne is várj tizedesjegyeket, hiszen egy int-nek olyanjai nincsenek.
Több lehetőséged is van:
1. float a, b, c;
Ezzel float típusokat fogsz beolvasni, és a float/int művelet már nem egészosztásként lesz értelmezve, így float eredményt kapsz.
2. atlag=(a+b+c)/3.0;
Így szintén nem egészosztást akar majd végrehajtani, hiszen a int/float művelet lesz végrehajtva, aminek az eredménye float.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!