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

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

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

#include<stdio.h>
#include<locale.h>
#include<stdlib.h>
#include<math.h>
 
int main()
{
    setlocale(0,"");
    float a,b,s;
    char c;
    printf("\n\n\n\t\t\t\t\Калькулятор!\n\n");
    printf("Введите первое дробное  число : ");
    scanf("%5f",&a);
    fflush(stdin);
    printf("Введите второе дробное число : ");
    scanf("%5f",&b);
    fflush(stdin);
    l:
    printf("Введите знак между ними : ");
    scanf("%1c",&c);
    fflush(stdin);
    switch(c)
    {
        case '/': s=a/b; break;
        case '*': s=a*b; break;
        case '+': s=a+b; break;
        case '-': s=a-b; break;
        default: printf("Неверно введена математическая операция\n"); goto l;
    }
    printf("%7lf%c%7lf=%7lf",a,c,b,s);
    return 0;
}
Подскажите как сделать чтобы число воспринималось с такой же точностью с какой и вводилось ? то есть если я ввёл 64,7 чтобы оно не преобразовывалось в 64,6666669 соответственно математически результат выражения также неверный.

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

textual
Листинг программы
#include<stdio.h>
#include<locale.h>
#include<stdlib.h>
#include<math.h>
 
int main()
{
    setlocale(0,"");
    double a, b, s;
    char c;
    printf("\n\n\n\t\t\t\t\Калькулятор!\n\n");
    printf("Введите первое дробное  число : ");
    scanf("%5lf",&a);
    fflush(stdin);
    printf("Введите второе дробное число : ");
    scanf("%5lf",&b);
    fflush(stdin);
    printf("Введите знак между ними : ");
    scanf("%1c",&c);
    fflush(stdin);
    switch(c)
    {
        case '/': s = a / b; break;
        case '*': s = a * b; break;
        case '+': s = a + b; break;
        case '-': s = a - b; break;
        default: printf("Неверно введена математическая операция\n");
    }
    printf("%7lf%c%7lf=%7lf", a, c, b, s);
    return 0;
}

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

  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
Похожие ответы