输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位.a,b<=10^6,c<=100.
输入包含多组数据,结束标记为a=b=c=0
样例输入:
1 6 4
999999 10000 3
0 0 0
样例输出:
Case 1: 0.1667
Case 2:100.000
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a, b, c, y, decimal[110];
int k = 0;
while(scanf("%d%d%d",&a, &b, &c) != EOF && (a || b || c))
{
k++;
y = a%b;
decimal[0] = 0;
for (int i = 1; i <= c; i++)
{
decimal[i] = y * 10 / b;
y = y*10%b;
}
//最后四舍五入
if(y*10/b >= 5)
{
for(int i = c;i >= 0;i--)
{
decimal[i] += 1;
if(decimal[i] < 10) break;
else decimal[i] -= 10;
}
}
printf("Case %d: %d.", k, a/b + decimal[0]);
for(int i = 1; i <= c; i++)
{
printf("%d",decimal[i]);
}
printf("\n");
}
return 0;
}