Am completat o introducere în programarea folosind Python și sunt mai obișnuit cu Python decât cu C, așa că aș putea amesteca cele două. C îmi dă tot felul de erori. Am încercat să schimb lucrurile, dar notarea pare să funcționeze; odată ce îmi dau seama de sintaxa lui C, probabil voi rescrie acest program.
#include <stdio.h> #include <cs50.h> int main(void) { int num; do { int num = getint(); while( int num < 0 or int num > 23 ); } }
Erori:
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.
Răspuns
Este „o paranteză curlată greșită.
do { int num = GetInt(); } while( int num < 0 || int num > 23 );
Doriți să includeți instrucțiunea do
între acolade, dar păstrați condiția while în afara. Fii atent la valorificarea cu majuscule. Funcțiile sunt sensibile la majuscule și minuscule. De asemenea, nu puteți „folosi cuvântul” sau „, ci folosiți ||
(conducta dublă). (Și pentru referință viitoare, &&
înseamnă „și”).
Încercați asta!
De asemenea, Notele de curs din săptămâna 1: Construcția programării în C conține o mulțime de exemple de sintaxă pentru diferite bucle, condiții etc. Ar putea merita să fie la îndemână ca referință în timp ce lucrați la acest lucru.
Brenda.
do
declarație între paranteze, " vrei să spui paranteze{}
mai degrabă decât paranteze()
?