1. 程式人生 > >演算法競賽入門經典 習題2-5 分數化小數(decimal)

演算法競賽入門經典 習題2-5 分數化小數(decimal)

                                           分數化小數(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;
}