Сообщение об ошибке цикла while (ошибка идентификации) - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь использовать этот код, чтобы предложить пользователю ввести число и поставить условие, что ответ должен быть от 1 до 23 (включительно).Однако, как я пытался с циклом do-while, он, похоже, возвращает ошибку, с которой я не знаком.

Мой код:

#include "stdio.h"
#include "cs50.h"
int n;
do
{
    n = get_int("Enter a number: ");
}
while (n < 0 || n > 23);

Ошибка:

hello.c:5:1: error: expected identifier or '{'
do
^
hello.c:10:1: error: expected identifier or '{'
while (n < 0 || n > 23);
^

1 Ответ

0 голосов
/ 30 ноября 2018

Ваша проблема не в том, что синтаксис вашего цикла неправильный.Проблема в том, что вы не поместили его в какую-либо функцию, поэтому компилятор не ожидал цикл в этом контексте.int n; действует вне функций, поэтому ошибка возникает при запуске цикла.Попробуйте что-то вроде этого:

#include "stdio.h"
#include "cs50.h"

int main(int argc, char **argv)
{
    // the program starts here; "main" is the function that is run when the program is started
    int n;
    do {
        n = get_int("Enter a number: ");
    }
    while (n < 0 || n > 23);
    // TODO: do something useful with the input
    return 0; // The convention is that returning 0 means that everything went right
}

Обратите внимание, что код теперь находится внутри функции main вместо того, чтобы стоять там один.

...