Loading

分数化小数

题目: 

                输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。a,b≤10^6,c≤100.输入包含多组数据,结束标记为a=b=c=0;

              样例:1 6 4

                         0.1667

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int a,b,c,i=0,x,a1,x1;
 5     scanf("%d%d%d",&a,&b,&c);//例输入 10 6 4
 6     int s[c];//存放小数点后各位
 7     int co=0;//计数已到达小数点后位数
 8     x=a/b;
 9     printf("%d",x);//打印整数位;
10     a=a%b;//此时a=4
11     while(co!=c+1)
12     {
13         x=10*a/b;co++;
14         if(co==c)//当到达小数点后第4位时计算第5位是否满足四舍五入
15         {
16             a1=10*a%b;
17             x1=10*a1/b;//第5位
18             if(x1>=5)
19                 x=x+1;
20         }
21         s[i++]=x;
22         a=10*a%b;
23     }
24     printf(".");//打印小数点
25     for(i=0;i<c;i++)
26     {
27         printf("%d",s[i]);
28     }
29     return 0;
30 }
View Code

 

posted @ 2018-11-23 21:57  沉云  阅读(247)  评论(0编辑  收藏  举报