Jag slutförde en introduktion till programmering med Python och jag är mer van vid Python än C, så jag kan blanda ihop de två. C ger mig alla möjliga fel. Jag försökte ändra saker men att märka verkar fungera; när jag förstår C: s syntax kommer jag antagligen att skriva om det här programmet.
#include <stdio.h> #include <cs50.h> int main(void) { int num; do { int num = getint(); while( int num < 0 or int num > 23 ); } }
Fel:
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.
Svar
Det ”är en felplacerad krökt ställning.
do { int num = GetInt(); } while( int num < 0 || int num > 23 );
Du vill lägga in do
uttalande i lockiga hakparenteser, men håll medan tillståndet utanför. Var försiktig med kapitalisering. Funktionerna är skiftlägeskänsliga. Du kan också ”inte använda ordet” eller ”men istället använda ||
(dubbelröret). (Och för framtida referens, &&
betyder ”och”).
Pröva det!
Föreläsningsanteckningarna från vecka 1: Programmering konstruerar i C har många exempel på syntax för olika slingor, förhållanden etc. Det kan vara värt att hålla sig till hands som referens medan du arbetar med detta.
Brenda.
do
uttalande inom parentes, " menar du lockiga hakparenteser{}
snarare än parenteser()
?