Hallo, ich hoffe das Ihr mir helfen könnt ich komm einfach nicht drauf warum dieser Code nicht mit Multiplikation funktioniert(möchte damit die Fakultät einer Zahl errechnen).
C++:
void __fastcall TForm1::Button1Click(TObject *Sender) { double i; //i wird hochgezählt und mit f Multipliziert double f = 1; //f ist der wert der das ergebnis von der multiplikation ist und verändert sich bei jedem durchlauf double n = Edit1->Text.ToDouble(); //n ist der Wert der eingeben wird, die Schleifenzahl bestimmt und wovon die Fakultät errechnet werden soll for(i=0;i<n+1;i++) f*=i; //funktioniert nur mit (+, -)
Problem ist nun das der Code mit + und mit - funtioniert und das richtige ergebnis herauskommt. Bei einer Multiplikation aber ein falsches ergebnis. Warum?
--edit: Pablo. [ cpp ] tgs gesetzt --Dieser Post wurde am 25.10.2003 um 18:19 Uhr von Pablo Yanez Trujillo editiert.
stimmt hast recht hab jetzt einfach i auf 1 gesetzt und es funktioniert. Bin nicht wirklich darauf gekommen weil ich dachte das in der for schleife durch i++ , i schon auf 1 gesetzt wird was anscheinend ja nicht der fall ist :-). Danke
@Kevin der erste Teil bei der for-Schleife wird nur vor dem start ausgeführt, dort initialisiert man variablen. Der zweite teil ist die Bedinung die vor jedem Schleifendurchlauf getestet wird. Ist sie false wird die schleife gar nicht mehr durchlaufen. Es kann dir also passieren das die schleife sogar gar nicht durchlaufen wird. Die dritte angabe wird erst am ende des durchlaufs der schleife ausgeführt, daher erhöht er das i auch erst nachdem er die schleife einmal durchgelaufen ist.
@FloSoft Du lässt ja nach. Mich wundert ja das die ein so offensichtlicher Fehler durch die Lappen gegangen ist. Da waren wir wohl mal wieder voreilig mit Problem ins andere Forum schieben bedacht obwohl er vom fehler her ja doch im richtigen Forum war -- ...fleißig wie zwei WeißbroteDieser Post wurde am 25.10.2003 um 17:41 Uhr von Windalf editiert.
Windalf postete @FloSoft Du lässt ja nach. Mich wundert ja das die ein so offensichtlicher Fehler durch die Lappen gegangen ist. Da waren wir wohl mal wieder voreilig mit Problem ins andere Forum schieben bedacht obwohl er vom fehler her ja doch im richtigen Forum war
Mir ist der Fehler schon aufgefallen, hatte nur grade keine zeit mehr meinen Post zu editieren Ich hab den Post verschoben, da viel Borland-"Graffel" vorkam... -- class God : public ChuckNorris { };