Этот фрагмент кода постоянно печатает «Введите значение массива: вводятся только числовые значения» при вводе буквы. Я не понимаю, почему он не просто печатает один раз, и продолжает принимать ввод. В идеале пользователь повторно вводит один или весь набор значений, поэтому использование команды break, которая только выходит из цикла, не является идеальным. Любые слова совета будут высоко оценены.troubeshooting Почему секция кода застревает в цикле
#include <stdio.h>
#include <string.h>
int main(void)
{
int i, value, containsValues[5];
for(i=0; i<=4;) {
printf("Enter array value: \n");
if (scanf("%d", &value) !=1)
{ printf("Only numeric values can be entered \n");}
else
{containsValues[i] = value;
++i;}
}
return 0;
}
Редактировать: Сохраняется ли письмо в буфере, что приводит к такому поведению? Если да, то какие советы по очистке буфера?
Совет отладки: напечатайте содержимое переменных 'i' и' value'. Также проверьте возврат 'scanf()' – Coconop
спасибо за подсказку! Но даже когда я приращения, пользователь не может повторно вводить ввод больше советов ?? –