算法竞赛入门经典ch2_practice5分数化小数
题
输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。 a,b≤10^6,c≤100
。 输
入包含多组数据,结束标记为a=b=c=0。
样例输入:
1 6 4
0 0 0
样例输出:
Case 1: 0.1667
解
c<=100远远超出int能表示的范围,不能直接除。
code
//25mintes
//分数化小数
#include "stdio.h"
int main()
{
int a, b, c;
while (scanf("%d%d%d", &a, &b, &c) == 3 && a && b && c)
{
printf("%d.", a / b);
//a % b;
for (int i = 0; i < c; i++)
{
if (i == c - 1)
{
a = a * 10;
printf("%d\n", int(float(a) / b+0.5));//最后一个四舍五入
a = a % b;
}
else
{
a = a * 10;
printf("%d", a / b);
a = a % b;
}
}
}
return 0;
}
本文来自博客园,作者:ssh_alitheia,转载请注明原文链接:https://www.cnblogs.com/shanchuan/p/8150305.html