欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

算法竞赛入门经典 习题2-5 分数化小数(decimal)

程序员文章站 2022-03-14 19:30:32
...

                                           分数化小数(decimal)

输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。a,b≤106,c≤100。

输 入包含多组数据,结束标记为a=b=c=0。


样例输入:
1 6 4
0 0 0


样例输出:
Case 1: 0.1667
 

#include <stdio.h>
#include <math.h>

int main ()
{
    int a, b, c, cnt = 0;
    while(scanf("%d%d%d", &a, &b, &c) != EOF)
    {
        if(a == 0 && b == 0 && c == 0)
            break;
        else
        {
            int i = floor((double)a/b);
            printf("Case %d:%d.", ++cnt, i);
            int j = a-i*b;
            for(int k = 1; k < c; k++)
            {
                i = floor(j*10/b);
                j = j*10-i*b;
                printf("%d", i);
            }
            i = floor((double)j*10/b + 0.5);
            printf("%d", i);
            printf("\n");
        }
    }

    return 0;
}