Когда вводится меньше максимального числа целых чисел, код не запускается - PullRequest
0 голосов
/ 21 июня 2019

Для программы я знаю, что максимальное количество целых чисел, которое можно ввести, равно 100, но они также могут ввести 2 целых числа или 3 или около того.но если я введу меньше 100, программа просто будет ждать, пока я введу все 100.

Если попытаться сделать while i != '\0' перед циклом for, а затем я попытался поставить if i != '\0' после scanf, но ни один из них не работал.

printf("enter a list of integers ");
for (; i < 100; i++)
if ((scanf("%d", &list[i])) != 1)
{
break;
}

В настоящий момент программа просто запускается до тех пор, пока не будет введено 100 целых чисел, но ее нужно остановить, если пользователь хочет ввести только меньшее количество целых чисел.

1 Ответ

0 голосов
/ 21 июня 2019

Если вы измените scanf на gets / sscanf, вы можете остановиться после ввода чего-либо, кроме действительного целого числа (новая строка, буква ...).

int list[100];
printf("enter a list of integers ");
char tmp[1024];
int i=0;
for (; i < 100; i++) {
    gets(tmp);
    if (sscanf(tmp, "%i", &list[i]) != 1) break;
}
printf("i is %i\n",i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...