Ho completato unintroduzione alla programmazione usando Python e sono più abituato a Python che a C, quindi potrei mescolare i due. C mi sta dando tutti i tipi di errori. Ho provato a cambiare le cose ma le annotazioni sembrano funzionare; una volta individuata la sintassi di C, probabilmente riscriverò questo programma.
#include <stdio.h> #include <cs50.h> int main(void) { int num; do { int num = getint(); while( int num < 0 or int num > 23 ); } }
Errori:
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.
Risposta
È “una parentesi graffa fuori posto.
do { int num = GetInt(); } while( int num < 0 || int num > 23 );
Si desidera racchiudere listruzione do
tra parentesi graffe, ma mantenere la condizione while allesterno. Fai attenzione alle maiuscole. Le funzioni fanno distinzione tra maiuscole e minuscole. Inoltre, non puoi “usare la parola” o “ma invece utilizzare ||
(il doppio tubo). (E per riferimento futuro, &&
significa “e”).
Provalo!
Inoltre, gli Appunti della prima settimana: Costrutti di programmazione in C ha molti esempi di sintassi per vari cicli, condizioni, ecc. Potrebbe valere la pena tenerlo a portata di mano come riferimento mentre ci lavori.
Brenda.
do
dichiarazione tra parentesi, " vuoi dire parentesi graffe{}
anziché parentesi()
?