分数化小数(decimal) 白书习题 2-5

 1 /*
 2 分数化小数(decimal) 白书习题 2-5 
 3 输入正整数 a , b , c , 输出 a/b 的小数形式,精确到小数点后 c 位 .a,b<=10^6 , c <= 100.
 4 输入包含多组数据,结束标志为  a = b = c = 0 ;
 5 */
 6 #include<stdio.h>
 7 int main()
 8 {
 9     int a,b,c,y;   //y用来存储 a/b 的余数 
10     while(scanf("%d%d%d",&a,&b,&c) != EOF)
11     {
12         if (a==0 && b==0 && c==0)
13         return 0;
14         else
15         {
16             int i;
17             printf("%d.",a/b);
18             y = a % b;
19             for(i=1;i<c;i++)
20             {
21                                /* 有没有一种做小学除法的感觉*/
22                 y *= 10;
23                 printf("%d",y/b);
24                 y = y % b;    
25             }
26             /*最后一位四舍五入*/ 
27             if(y*10/b >= 5)
28             printf("%d",y*10/b+1);
29             else 
30             printf("%d",y*10/b);
31             printf("\n"); 
32         } 
33     }
34     return 0;
35 } 

 

posted @ 2015-01-29 12:23  constructora  阅读(269)  评论(0编辑  收藏  举报