问题描述
- 简单编程题:分数化小数,怎么用变量作为输出的小数位?
-
题目:输入正整数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
我的代码如下,还没有完善,如果有其他不足也恳请指教!谢谢
#include
int main()
{
int a,b,c,kase=0;
double res;
while(scanf("%d%d%d",&a,&b,&c)&&(a!=0&&b!=0&&c!=0))
{
res=a/b;
printf("Case %d: ",++kase,c,res);
}
return 0;}
解决方案
http://blog.csdn.net/nanashiro/article/details/8284922
这个源码试试吧。他没保存小数点后面的数字而是直接输出了。
你想保存。那就多一步,存到char数组里就行。
解决方案二:
100位小数啊。你用double保存绝对不行的。double不可能精确到小数点后100位(你想想,小数点后100位,如果要精确,至少要10^100这么大数据量,这个量,double绝对达不到的,一共才4位(可能是8位不记得了))
建议用char c[101] 这样保存。模拟人工算法来计算。参考高精度除法算法。应该可以的。
解决方案三:
这个可以啊!没问题,只要你定义了
时间: 2024-11-03 22:23:22