紫书 习题2-5 分数化小数

紫书 习题2-5 分数化小数

 1 #include<stdio.h> //基础版
 2 #define MAX 110
 3 
 4 int main(void)
 5 {
 6     int a, b, c;
 7     scanf("%d %d %d",&a,&b,&c);
 8 
 9     int integer = a/b;
10     int remainderTemp=a%b;
11     int arr[MAX];
12 
13     for(int i = 0; i< c; i++){
14         int resultTemp = remainderTemp * 10;
15         arr[i] = resultTemp/b;
16         remainderTemp = resultTemp%b;
17     }
18     printf("%d.",integer);
19 
20     for(int i = 0; i < c;i++){
21         printf("%d",arr[i]);
22     }
23 
24     getchar();
25     getchar();
26     return 0;
27 }
 1 #include<stdio.h>//四舍五入版
 2 #include<math.h>
 3 int main()
 4 {
 5     int a,b,c;
 6     int cas=1;
 7     while(scanf("%d%d%d",&a,&b,&c))
 8     {
 9         if(a==0&&b==0&&c==0) break;
10         int x=floor((double)a/b);
11         int i,s;
12 
13         printf("Case %d: %d.",cas++,x);
14         for(i=1;i<c;i++)
15         {
16             a=a*10;
17             s=floor((double)a/b);
18             printf("%d",s%10);    //注意输出的是s%10
19             a=a%b;
20         }
21         a=a*10;
22         s=floor((double)a/b+0.5);//注意把最后一位单独分离四舍五入
23         printf("%d",s);
24         printf("
");
25     }
26     return 0;
27 }