Код выводит заглавную букву "D", если на входе указан 1 или 0 в дополнение к желаемому результату - PullRequest
0 голосов
/ 26 мая 2019

Задача - написать небольшую программу для вводного курса программирования, где "#" выводятся на терминал в зависимости от ввода целых чисел и выполняются при вводе символа EOF. Выглядит ужасно, но работает нормально, за исключением случаев, когда вводится 1 или 0, а сразу после желаемого вывода выводится буква «D», и я понятия не имею, почему или как это возможно.

Я попытался поиграться в массиве, который используется для хранения входных данных для выполнения, и там нет "D". Там нет "D" нигде. Пока что это не происходит с другими входами.

int main()
{
    int n = 0;
    int index = 0;
    int field[2000] = {};
    int length = 0;
    while (1)
    {
        int check = scanf("%d", &n);
        if (check == EOF)
        {
                break;
        }
        field[index] = n;
        index += 1;
        length += 1;
    }
    for (int i = 0; i < length ; i++)
    {
        if (field[i] == 0)
        {
            printf(" ");
        }
        else
        {
            for(int j = 0; j < field[i]; j++)
            {
                printf("#");
            }
        }
        printf("\n");
    }
    return 0;
}

Я ожидал, что будет выведен один символ "#" или пробел, никаких других символов ни при каких обстоятельствах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...