输入:
正整数a,b,c(a,b<=100000,c<=1000),输入有多组测试用例结束的标志为a=b=c=0。
输出:
a/b的小数形式,精确到小数点后c位。
样例输入:
1 6 4
0 0 0
样例输出:
0.1667
解题思路一:
这是一种投机取巧的方法,当然只能通过一部分数据,就是格式化输出printf的特殊用法,这个方法比分别求小数部分和整数部分以及处理进位问题要容易的多,但是测试时发现一旦c大于16以后,输出的浮点数后面全为0,原因是double的有效精度只有16位。所以不适合题意。感兴趣的可以看一下代码:↓↓↓
#include<stdio.h> int main() { int a,b,c; double m; while(scanf("%d %d %d",&a,&b,&c)!=EOF) { if(a==0&&b==0&&c==0) break; m=1.0*a/b; printf("%.*lf",c,m); } return 0; }