Проверка переменной на принадлежность к числовому типу - C (СИ)
Формулировка задачи:
Доброго всего да побольше!
Есть переменная, к примеру double x; выводится на экран сообщение "Введите X: ", пользователь случайно вводит не число, а букивку или любой другой символ, как осуществить проверку принадлежности введенного значения к типу double, чтобы вывести сообщение типа: "Введи число, осел!".
И дать ему второй шанс ввести число.
Считываю введенные данные так:
Вот такое:
не работает.
Такое:
тоже. Просто зацикливается.
Такое:
тоже. Если ввесли не число, пишет сообщение об ошибке, и просит вводить уже следующую переменную.
Есть какие предложения по этому?
float main()
{
float s, t, sol;
printf("Enter s: ");
scanf("%f", &s);
printf("Enter t: ");
scanf("%f", &t);
sol = solFunc( t, -2*s, 1.17 ) + solFunc( 2.2, t, s-t );
printf("\n%f\n\n", sol);
system("pause");
}if ( s == int )
do{
printf("Enter s: ");
if(scanf("%f", &s)==1) break;
printf("Нихт ферштэйн!");
}while(1==1);for(i=0; i<1; i++){
printf("Enter s: ");
if(scanf("%f", &s)==1) break;
printf("Нихт ферштэйн!");
}Шйорт побьери, уже есть ответ, удалите пожалуйста тему
Решение задачи: «Проверка переменной на принадлежность к числовому типу»
textual
Листинг программы
double b;
do
{
fflush(stdin);
int a = sacnf("%lf",&b);
}while(a!=1);
Объяснение кода листинга программы
- Объявляется переменная типа double с именем
b. - Запускается цикл do-while, который будет выполняться до тех пор, пока значение переменной
aне станет равным 1. - Внутри цикла происходит считывание значения с помощью функции scanf с форматом
%lfи указанием адреса переменнойb. - Результат считывания значения сохраняется в переменной
a. - Если значение
aне равно 1, то происходит переход к следующей итерации цикла. - Если значение
aравно 1, то происходит выход из цикла и выполнение программы продолжается.