Ich habe abgeschlossen Eine Einführung in die Programmierung mit Python und ich bin eher an Python als an C gewöhnt, also könnte ich die beiden verwechseln. C gibt mir alle möglichen Fehler. Ich habe versucht, Dinge zu ändern, aber es scheint zu funktionieren. Sobald ich die Syntax von C herausgefunden habe, werde ich dieses Programm wahrscheinlich neu schreiben.
#include <stdio.h> #include <cs50.h> int main(void) { int num; do { int num = getint(); while( int num < 0 or int num > 23 ); } }
Fehler:
mario.c:13:9: error: expected expression while( int num < 0 or int num > 23 ); ^ mario.c:16:1: error: expected "while" in do/while loop } ^ mario.c:9:2: note: to match this "do" do ^ mario.c:16:2: error: expected "}" } ^ mario.c:6:1: note: to match this "{" { ^ 3 errors generated. jharvard@appliance (~/Dropbox): make mario clang -ggdb3 -O0 -std=c99 -Wall -Werror mario.c -lcs50 -lm -o mario mario.c:13:9: error: expected expression while( int num < 0 or int num > 23 ); ^ mario.c:16:1: error: expected "while" in do/while loop } ^ mario.c:9:2: note: to match this "do" do ^ mario.c:18:1: error: expected "}" ^ mario.c:6:1: note: to match this "{" { ^ 3 errors generated.
Antwort
Es ist eine falsch platzierte geschweifte Klammer.
do { int num = GetInt(); } while( int num < 0 || int num > 23 );
Sie möchten die Anweisung do
in geschweifte Klammern setzen, aber die while-Bedingung außerhalb lassen. Achten Sie auf die Großschreibung. Funktionen unterscheiden zwischen Groß- und Kleinschreibung. Sie können auch „nicht das Wort“ oder „verwenden, sondern stattdessen ||
(die Doppelpipe) verwenden. (Und zum späteren Nachschlagen &&
bedeutet „und“).
Probieren Sie es aus!
Auch die Vorlesungsunterlagen aus Woche 1: Programmierkonstrukte in C enthält viele Syntaxbeispiele für verschiedene Schleifen, Bedingungen usw. Es könnte sich lohnen, sie als Referenz zur Hand zu haben, während Sie daran arbeiten.
Brenda.
Kommentare
- Alle Fehler wurden behoben. Danke.
- @ zoot404. Wenn die Antwort hilfreich war, stimmen Sie bitte ab und markieren Sie sie als akzeptiert. Das hilft anderen wenn Sie nach ihren eigenen Antworten suchen. 🙂
- @curiouskiwi (Überprüfung der geistigen Gesundheit meinerseits), wenn Sie sagen, " schließen Sie die Anweisung in Klammern, " meinen Sie geschweifte Klammern
{}
anstelle von Klammern()
? - Ja, danke. I habe meine Antwort bearbeitet.