Сделать чтобы число воспринималось с такой же точностью с какой и вводилось - C (СИ)

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

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

Листинг программы
  1. #include<stdio.h>
  2. #include<locale.h>
  3. #include<stdlib.h>
  4. #include<math.h>
  5. int main()
  6. {
  7. setlocale(0,"");
  8. float a,b,s;
  9. char c;
  10. printf("\n\n\n\t\t\t\t\Калькулятор!\n\n");
  11. printf("Введите первое дробное число : ");
  12. scanf("%5f",&a);
  13. fflush(stdin);
  14. printf("Введите второе дробное число : ");
  15. scanf("%5f",&b);
  16. fflush(stdin);
  17. l:
  18. printf("Введите знак между ними : ");
  19. scanf("%1c",&c);
  20. fflush(stdin);
  21. switch(c)
  22. {
  23. case '/': s=a/b; break;
  24. case '*': s=a*b; break;
  25. case '+': s=a+b; break;
  26. case '-': s=a-b; break;
  27. default: printf("Неверно введена математическая операция\n"); goto l;
  28. }
  29. printf("%7lf%c%7lf=%7lf",a,c,b,s);
  30. return 0;
  31. }
Подскажите как сделать чтобы число воспринималось с такой же точностью с какой и вводилось ? то есть если я ввёл 64,7 чтобы оно не преобразовывалось в 64,6666669 соответственно математически результат выражения также неверный.

Решение задачи: «Сделать чтобы число воспринималось с такой же точностью с какой и вводилось»

textual
Листинг программы
  1. #include<stdio.h>
  2. #include<locale.h>
  3. #include<stdlib.h>
  4. #include<math.h>
  5.  
  6. int main()
  7. {
  8.     setlocale(0,"");
  9.     double a, b, s;
  10.     char c;
  11.     printf("\n\n\n\t\t\t\t\Калькулятор!\n\n");
  12.     printf("Введите первое дробное  число : ");
  13.     scanf("%5lf",&a);
  14.     fflush(stdin);
  15.     printf("Введите второе дробное число : ");
  16.     scanf("%5lf",&b);
  17.     fflush(stdin);
  18.     printf("Введите знак между ними : ");
  19.     scanf("%1c",&c);
  20.     fflush(stdin);
  21.     switch(c)
  22.     {
  23.         case '/': s = a / b; break;
  24.         case '*': s = a * b; break;
  25.         case '+': s = a + b; break;
  26.         case '-': s = a - b; break;
  27.         default: printf("Неверно введена математическая операция\n");
  28.     }
  29.     printf("%7lf%c%7lf=%7lf", a, c, b, s);
  30.     return 0;
  31. }

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

  1. Подключение необходимых библиотек для работы с числами и вводом-выводом
  2. Установка локали на русскую
  3. Объявление переменных типа double для хранения чисел с плавающей точкой
  4. Объявление переменной типа char для хранения знака операции
  5. Вывод приветствия и названия программы
  6. Ввод первого числа с плавающей точкой с помощью функции scanf
  7. Очистка буфера ввода с помощью функции fflush
  8. Ввод второго числа с плавающей точкой с помощью функции scanf
  9. Очистка буфера ввода с помощью функции fflush
  10. Ввод знака операции с помощью функции scanf
  11. Очистка буфера ввода с помощью функции fflush
  12. Выбор операции с помощью оператора switch
  13. Выполнение математической операции и сохранение результата в переменной s
  14. Вывод результатов на экран с помощью функции printf
  15. Возврат 0, чтобы указать, что программа успешно завершилась

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


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

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

5   голосов , оценка 3.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы