Archiv verlassen und diese Seite im Standarddesign anzeigen : anfängerfrage bezügl. variablentypen
hallo!
mal eine frage: was für ein ergebnis sollte das folgende programm liefern? ich dachte eigentlich, es würde 2,5 liefern, bei mir kommt aber 2 raus. wo ist da jetzt der fehler?
#include <iostream.h>
int main(){
float i = 5/2;
cout << i << "\n";
return 0;
}
sorry, ich bin kompletter programmier-anfänger...
ogott
peschmae
13-12-2003, 07:30
5/2 ist eine Integer-Divison. Ganzzahlig. Das Resultat ist auch Ganzzahlig. Hier halt nicht gerundet, sondern einfach mit den Nachkommastellen abgeschnitten.
Das gewünschte gibts mit dem da:
5.0/2.0
dann weiss der Compiler, dass du floats dividierst. :)
MfG Peschmä
ah, vielen dank, das erklaert jetzt einiges!
danke,
ogott
hmm... ich habe da noch eine frage zur modulo division: gibt die mir jetzt den rest wieder, oder nur eine 0 fuer "es gibt keinen rest" und eine 1 fuer "es gibt einen rest"?
ogott
Original geschrieben von ogott
hmm... ich habe da noch eine frage zur modulo division: gibt die mir jetzt den rest wieder, oder nur eine 0 fuer "es gibt keinen rest" und eine 1 fuer "es gibt einen rest"?
Du bekommst den Rest.
Für den Spezialfall % 2,gibt es natürlich nur die Lösungen 0 oder 1 (also es gibt keinen Rest,oder es gibt einen ^^).
Aber i.A. gilt für eine natürliche Zahl % N bekommst du Zahlen aus 0 - (N-1)
peschmae
13-12-2003, 17:44
Original geschrieben von ogott
hmm... ich habe da noch eine frage zur modulo division: gibt die mir jetzt den rest wieder, oder nur eine 0 fuer "es gibt keinen rest" und eine 1 fuer "es gibt einen rest"?
wäre die Frage nicht schon beantwortet hätte ich hier gross "Ausprobieren" hingeschrieben. Schliesslich geht das 10 Sekunden und du hast es dann mit eigenen Augen gesehen. Das ist meist besser als etwas mal irgendwo von jemandem erzählt gekriegt zu haben.
MfG Peschmä
hallo!
@ wraith: danke für die antwort, hab einen totalen denkfehler gehabt, ist ja logisch, dass bei 1/3 der rest 1 ist und nicht 0.333333 (das war der denkfehler).
@ peschmae: ich habe gefragt, weil das ergebnis, das ich bekommen habe durch meinen denkfehler etwas verwirrend war...
danke nochmal
ogott
anda_skoa
16-12-2003, 16:41
Und weils noch kein anderer geschrieben hat :)
Es heißt <iostream> nicht <iostream.h>
Ciao,
_
hmm... ok.
solange es funktioniert...
aber danke!
ogott
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.