Eu concluí uma introdução à programação usando Python e estou mais acostumado com Python do que C, então posso misturar os dois. C está me dando todos os tipos de erros. Tentei mudar as coisas, mas notar que parece funcionar; assim que descobrir a sintaxe do C, provavelmente irei reescrever este programa.
#include <stdio.h> #include <cs50.h> int main(void) { int num; do { int num = getint(); while( int num < 0 or int num > 23 ); } }
Erros:
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.
Resposta
É uma chave mal colocada.
do { int num = GetInt(); } while( int num < 0 || int num > 23 );
Você deseja colocar a instrução do
entre chaves, mas mantenha a condição while de fora. Tenha cuidado com a capitalização. As funções diferenciam maiúsculas de minúsculas. Além disso, você não pode “usar a palavra” ou “, mas em vez disso, use ||
(o tubo duplo). (E para referência futura, &&
significa “e”).
Experimente!
Além disso, as notas da aula da semana 1: Construções de programação em C tem muitos exemplos de sintaxe para vários loops, condições, etc. Pode valer a pena manter à mão como uma referência enquanto você trabalha nisso.
Brenda.
do
declaração entre parênteses, " você quer dizer colchetes{}
em vez de parênteses()
?