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.

Kommentarer

  • alla fel har åtgärdats tack tack
  • @ zoot404, om svaret var till hjälp, rösta och markera det också som godkänt. Det hjälper andra när man letar efter sina egna svar. 🙂
  • @curiouskiwi (sanity check från min sida) när du säger, " bifoga do uttalande inom parentes, " menar du lockiga hakparenteser {} snarare än parenteser ()?
  • Ja tack. Jag har redigerat mitt svar.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *