Си. Вывести Х точных значащих цифр после десятичной точки искомого числа
Я решил решить задачу из e-olymp, что казалась мне лёгкой, код прикрепляется снизу, но почему-то его точность составляет 30%, даже не знаю в чём проблема, код выполняет сказанное.
Условие задачи: Дана рациональная дробь т / п. Запишите её в виде десятичной дроби с точностью к знаков после запятой.
Входные данные: В одной строке записано 3 числам, n, k.0 m, n ≤ 100, 0 ≤ k ≤ 1000.
Выходные данные: Вывести к точных значащих цифр после десятичной точки искомого числа.
Примеры Ввод - 123 Ответ - 0.500
#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
float result = (float) a / b;
printf("%.*f", c, result);
}
В чём проблема этого кода?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Одним циклом for
:)
#include <stdio.h>
int main() {
int m, n, k;
for(scanf("%d %d %d",&m,&n,&k),printf("%d.",m/n);
k-->0;m%=n,putchar((m*=10)/n+'0'));
}