while (scanf("%f %f %f", &a, &b, &c) != 1 || a - (int)a != 0 || b - (int)b != 0 || c - (int)c != 0)
{
fflush(stdin);
printf("Ошибка. Введите снова: ");
}
%d
. Еще, scanf возвращает количество прочитанных значений. Т.е. сравнивать надо с тройкой, а не единицей.while (scanf("%f %f %f", &a, &b, &c) != 1 || ...
float
, чтобы формат %f
scanf
работал правильно.если сначала ввести 1 2 3, то приложение выведет "Ошибка. Введите снова: "
как это исправить?
scanf
возвращает число успешно отсканированных полей, возвращаемое scanf
значение надо сравнивать с 3 в условии цикла.