Mi a hiba ebben a C++ kódban?
#include <iostream>
using namespace std;
int main()
{
// 1. Feladat:
// A program bekér két változót, "a"-t és "b"-t. Cseréld meg a két változó értékét.
int e;
int f;
cout << "e = ";
cin >> e;
cout << "f = ";
cin >> f;
cout << '\n\n';
e = e + f;
f = e - f;
e = e - f;
cout << "Elso feladat:" << endl;
cout << "e = " << e << endl;
cout << "f = " << f << endl;
return 0;
}
Output:
e = 5
f = 7
2570Elso feladat:
e = 7
f = 5
A 2570 miért van ott? Miért nincs sorkihagyás? Mit rontottam el a kódban?
Te példádra például ez rossz lenne:
Az int 4 byte. Tehát: -2147483648-től 2147483647 erteket. Ha neked az a = 2147483647 es a b = 100 akkor amikor ezt csinalod a = a + b. Akkor ha átírod: a = 2147483647 + 100 már nem fér bele az intbe.
Nincs kikötve, hogy 2 változó.
"// 1. Feladat:
// A program bekér két változót, "a"-t és "b"-t. Cseréld meg a két változó értékét."
De, ha úgy kell akkor rendben van a megoldás, de az általam fent álló probléma akkor is előfordulhat. És mivel felhasználó kér be számot mindig arra kell gondolni, hogy a felhasználó "buta" és nem tudja, hogy nem adhat meg nagyobb értekét csak azt int felét.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!