Kezdőoldal » Számítástechnika » Programozás » Miért nem tizedes tört a...

Miért nem tizedes tört a végeredmény?

Figyelt kérdés

itt a program:

#include <cstdlib>


float Marci(int a, int b, int c, int d, int e);


int main()

{

int szam1;

int szam2;

int szam3;

int szam4;

int szam5;

std::cout << "Kerem, irjon be ot szamot, majd a program kiszamolja az atlagat!";

std::cin >> szam1;

std::cin >> szam2;

std::cin >> szam3;

std::cin >> szam4;

std::cin >> szam5;

std::cout << "Az eredmeny: " << Marci(szam1, szam2, szam3, szam4, szam5);

system("pause");

}



float Marci(int a, int b, int c, int d, int e)

{

float eredmeny;

eredmeny=(a+b+c+d+e)/5;

return eredmeny;

}



Futtatom, beírom a számokat: 1,2,3,4,6 amiknek az átlaga 3.2, de a programom 3-mat ír ki... Pedig float típusú az eredmény változója... Tudtok ötletet, hogy miért?



2014. ápr. 9. 21:25
 1/4 anonim ***** válasza:
100%

"(a+b+c+d+e)/5"

Itt minden int, így ennek az eredménye is int.

Megoldás:

"(a+b+c+d+e)/5.0"

2014. ápr. 9. 21:35
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
100%

Kezdj el tömböket és ciklust használni, mert ez így ocsmány.


Azért egész, mert:

-Elvégzi a zárójelet, eredménye egész szám

-Elvégzi az osztást, két egész esetén egészosztás

-Majd ezt kasztolja float-tá.


Megoldás: /5.0 vagy /5f vagy /(float)5.

2014. ápr. 9. 21:38
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

vagy /5. ;)

:D

2014. ápr. 9. 23:31
Hasznos számodra ez a válasz?
 4/4 iostream ***** válasza:

Fontos információ sikkad itt el.

"Pedig float típusú az eredmény változója... "

Ugye erről a kifejezésről van szó: eredmeny=(a+b+c+d+e)/5;

Ha a fordító figyelembevenné, hogy milyen típusú az eredmeny a = jobb oldalán álló kifejezés kiértékelésekor az 1) nagyon csúnya, környezetfüggő nyelvtant eredményezne 2) brutálisan nehezen észrevehető hibalehetőségeket hozna be, amikor a kifejezés nem változik, mégis teljesen máshogy lenne kiértékelve.


A programozási nyelvek többnyire törekszenek a környezetfüggetlenségre. Mindig ilyen szellemben vizsgáld a kifejezéseket.

2014. ápr. 10. 15:13
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!