Отбросить дробную часть от числа типа double - C (СИ)
Формулировка задачи:
В общем задача такова:
ввожу десятизначное положительное число типа double с клавиатуры.
нужно сделать проверку, чтоб это число было без дробной части.
тоесть если например: 5555555555.354 - чтоб выдавал ошибку и повторить ввод.
вот код:
библиотеку math.h включил
пишу на dev c++
Заранее спасибо!
double y; do { e[i].nom=-1; fflush(stdin); scanf("%lf",&e[i].nom); y=e[i].nom-floor(e[i].nom); if (e[i].nom<1000000000.0||e[i].nom>9999999999.0||y>0) printf(" Неверный ввод. Повтори, пожалуйста: "); } while((e[i].nom<1000000000.0)||(e[i].nom>9999999999.0||y>0);
Решение задачи: «Отбросить дробную часть от числа типа double»
textual
Листинг программы
double d; double i; do { scanf("%lf",&d); if (modf(d,&i)!=0) { puts("Wrong!"); } else break; } while (1); puts("Ok!");
Объяснение кода листинга программы
- Объявляются две переменные типа double: d и i.
- Запускается бесконечный цикл do-while(1).
- В каждой итерации цикла происходит следующее:
a. С помощью функции scanf() в переменную d считывается число типа double.
b. С помощью функции modf(d,&i) дробная часть числа d отбрасывается и сохраняется в переменной i.
c. Если дробная часть числа не равна нулю, то выводится сообщение
Wrong!
и ничего больше не происходит. d. Если дробная часть числа равна нулю, то происходит выход из цикла с помощью оператора break. - После окончания цикла выводится сообщение
Ok!
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д