С какой точностью выводить цифры - C (СИ)

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

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

Как задать точность, с которой программа должна выдавать значения чисел, т.е. количество знаков после запятой, если эта цифра не известна, а задается с клавиатуры?

Решение задачи: «С какой точностью выводить цифры»

textual
Листинг программы
#include <stdio.h>
 
int main()
{
    int precision = 0;
    char szFmt[8] = {0};
    while(1)
    {
        printf("Enter precision : ");
        if(!scanf("%d", &precision) || getchar() != '\n')
        {
            printf("Incorrect input\n");
            while(getchar() != '\n'){}//очистка буффера
        }
        else
        {
            sprintf(szFmt, "%%.%02df\n", precision);
            printf( szFmt, 1.0 / 17);
        }
    }
    return 0;
}

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

В этом коде пользователь вводит точность, затем программа проверяет корректность ввода. Если ввод корректен, программа использует функцию sprintf для форматирования строки и затем выводит результат на экран.

  1. Объявлены переменные:
    • precision (точность) типа int
    • szFmt (строка формата) типа char[]
  2. В цикле while(1) происходит следующее:
    • Выводится приглашение для ввода точности
    • Пользователь вводит точность, которую программа проверяет на корректность
    • Если ввод некорректен, программа выводит сообщение об ошибке и очищает буфер ввода
    • Если ввод корректен, программа использует функцию sprintf для форматирования строки формата
    • Форматированная строка выводится на экран
  3. Значение переменной precision считывается функцией scanf в блок if
  4. Если scanf не удалось считать значение или после него не было символа новой строки, программа выводит сообщение об ошибке и очищает буфер ввода
  5. Если scanf успешно считало значение, программа использует функцию sprintf для форматирования строки формата
  6. В формате указывается точность ввода с помощью спецификатора формата %. Затем в формате указывается ширина поля ввода 02d, чтобы выводилось всегда 2 знака после запятой. Функция sprintf выводит на экран отформатированную строку
  7. Значение 1.0 / 17 выводится на экран с помощью функции printf, используя отформатированную строку формата

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


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

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

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