Wie kann ich in C++ herausfinden ob die eingegebene Zahl gerade/ungerade ist?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

weiß jetzt grade nich mehr so genau, wie die syntax con c++ aussieht aber so oder so ähnlich müsste es gehen:

if (zahl % 2 == 0) {

    // hier steht alles das, was passieren soll, wenn die aussage wahr ist

}

LiquidX7 
Fragesteller
 29.05.2012, 13:07

hi (: vielen dank für die Hilfe !

0

Dafür ist wohl das Zauberwort Modulo. Damit kannst du den Rest einer Division ermitteln. In C++ ist der Operator dafür "%". Wenn du nun den Rest einer Division mit x % 2 ermittelst, erfährst du, ob es sich um eine gerade Zahl handelt. Denn wenn der Rest 0 ist, ist x eine Gerade. Alle Zahlen, die sich ohne Rest durch zwei teilen lassen, sind gerade.


Ergo0  28.05.2012, 17:58

dann hab ich doch mit meiner antwort gar nicht mal so falsch gelegen ^^

0
LiquidX7 
Fragesteller
 29.05.2012, 13:07

super, danke (:

0

Bei Integern (Ganzen Zahlen, also etwa 'int x') kannst du auch einfach mittels einer bitweisen Und-Verknüpfung abfragen, ob das Einer-Bit gesetzt ist:

if (x & 1) {
// x ist ungerade
} else {
// x ist gerade
}

Das dürfte um ein Vielfaches schneller sein als eine Modulo-Operation. Geht aber so nur für Integers. Falls dein Wert zwar eine ganze Zahl, aber in einer Fließkommavariablen abgelegt ist, musst du auf Integer casten. Für (wirklich) Reelle Zahlen macht ein Prüfen auf gerade/ungerade sowieso keinen Sinn.


LiquidX7 
Fragesteller
 29.05.2012, 13:07

Ich werds ausprobieren (: Vielen Dank :)

0