Funktionswerte übergeben, wieso Endlosschleife?
-
Hallo zusammen,
ich soll ein Programm mit einer Unterfunktion namens beep schreiben, die Töne erzeugt. Die Anzahl der Töne soll als Parameter übergeben werden.
Leider scheint hier eine Endlosschleife zu entstehen, da der Computer gar nicht mehr aufhört zu BEEPEN. Würde mich über einen Tipp freuen.#include <stdio.h> void beep(int wieoft){ int i; for(i=1;i<=wieoft;i+1) printf("\a"); } main() { int anzahl; printf("\nWie oft soll ich beep machen?"); scanf("%i",&anzahl); beep(anzahl); }
-
Das Problem ist das i+1 im Schleifenkopf. Dadurch wird i nicht inkrementiert. Richtig wäre i++ oder ++i oder von mir uas auch i+=1 oder gar i=i+1.
-
Danke Tim,
hat funktioniert. Obwohl im Buch steht das man i+1 und i++ verwenden kann. Hängt sicher auch vom Compiler ab. Jetzt klappt es richtig mit dem inkrementieren.
-
Klar kannst du beides verwenden, aber bei i+1 wirds halt nicht inkrementiert, das hat mim Compiler weniger zu tun.
-
Nein, das hängt NICHT vom Compiler ab. Das Buch erklärt vermutlich, das i++ und i=i+1 dieselbe Bedeutung hätten, aber auch das stimmt nur für eine Standard-for-Schleife.