Отбросить дробную часть от числа типа double - C (СИ)

Узнай цену своей работы

Формулировка задачи:

В общем задача такова: ввожу десятизначное положительное число типа double с клавиатуры. нужно сделать проверку, чтоб это число было без дробной части. тоесть если например: 5555555555.354 - чтоб выдавал ошибку и повторить ввод. вот код:
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);
библиотеку math.h включил пишу на dev c++ Заранее спасибо!

Решение задачи: «Отбросить дробную часть от числа типа double»

textual
Листинг программы
    double d;
    double i;
 
    do {
 
        scanf("%lf",&d);
 
        if (modf(d,&i)!=0) {
            puts("Wrong!");
        }
        else 
            break;
 
    } while (1);
 
    puts("Ok!");

Объяснение кода листинга программы

  1. Объявляются две переменные типа double: d и i.
  2. Запускается бесконечный цикл do-while(1).
  3. В каждой итерации цикла происходит следующее: a. С помощью функции scanf() в переменную d считывается число типа double. b. С помощью функции modf(d,&i) дробная часть числа d отбрасывается и сохраняется в переменной i. c. Если дробная часть числа не равна нулю, то выводится сообщение Wrong! и ничего больше не происходит. d. Если дробная часть числа равна нулю, то происходит выход из цикла с помощью оператора break.
  4. После окончания цикла выводится сообщение Ok!.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы