Си. Вывести Х точных значащих цифр после десятичной точки искомого числа

Я решил решить задачу из 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'));
}
→ Ссылка