C++ ban miért van az hogy pl: két unsigned short értéket össze akarok szorozni és kiiratni egy unsigned int változóba és nem szorozza össze (0-t ad)?
Figyelt kérdés
#include <iostream>
using namespace std;
int main()
{
unsigned short szelesseg;
unsigned short hosszusag;
unsigned int terulet;
terulet = szelesseg*hosszusag;
cout << "szelesseg: ";
cin >> szelesseg;
cout << "hosszusag: ";
cin >> hosszusag;
cin.get();
cout << "Terulet: " ;
cout << terulet;
cin.get();
}
Viszont, ha ugyanolyannak deklarálom mindhárom változót, akkor működik. Az unsigned short-okat muszáj lenne átalakítani unsigned int-be?
2012. máj. 17. 12:47
1/6 iostream válasza:
Inicializálatlan értékeket használsz. Bármi megtörténhet.
2/6 anonim válasza:
nem ártana azután összeszorozni, miután beolvastad az értékeket :D
3/6 anonim válasza:
Próbáld ki explicit kasztolással, tehát:
terulet = (unsigned int)szelesseg * (unsigned int)hosszusag
4/6 anonim válasza:
Nem történik véletlenül túlcsordulás? Próbáld ki unsigned longgal!
5/6 A kérdező kommentje:
Köszönöm, tényleg elég volt beolvasás után szorozni össze, nem kellett mást tenni!
2012. máj. 18. 07:26
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!