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