分数化小数(decimal)
程序员文章站
2024-03-18 23:26:16
...
输入正整数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<stdio.h>
#include<math.h>
int main(){
int a,b,c;
int kase=0;
while(scanf("%d%d%d",&a,&b,&c)){
if(a==0&&b==0&&c==0) break;
int x=floor((double)a/b); //向下取整,不大于x的最大整数
printf("Case %d: %d.",++kase,x); //输出整数部分
int i,s;
for(i=1;i<c;i++){ //小数点后前c-1位
a*=10;
s=floor((double)(a/b));
printf("%d",s%10);
a%=b;
}
a*=10;
s=floor((double)a/b+0.5); //小数点后第c位
printf("%d",s);
printf("\n");
}
return 0;
}
上一篇: 分数化小数(decimal)
下一篇: 分数化小数(decimal)