分数化小数(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 }