紫书 习题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("\n"); 25 } 26 return 0; 27 }