PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : anfängerfrage bezügl. variablentypen



ogott
13-12-2003, 02:50
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ä

ogott
13-12-2003, 13:56
ah, vielen dank, das erklaert jetzt einiges!

danke,

ogott

ogott
13-12-2003, 14:45
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

wraith
13-12-2003, 17:15
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ä

ogott
15-12-2003, 20:44
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,
_

ogott
16-12-2003, 19:45
hmm... ok.

solange es funktioniert...

aber danke!

ogott