分数化小数(decimal)
程序员文章站
2024-03-18 23:34:34
...
输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。a,b<=10^6,c<=100
输入包含多组数据,结束标记为a=b=c=0
样例输入:
1 6 4
0 0 0
样例输出
Case 1:0.1667
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <limits.h>
#include <float.h>
#include <time.h>
#define MAX 110
typedef long long ll; //定义长整型
int main(int argc, char *argv[]) {
int a,b,c,t=0;
while(scanf("%d%d%d",&a,&b,&c)==3){
t++;
if((a==0)&&(b==0)&&(c==0)) break;
//printf("s:%d \n ",s);
int integer=a/b;
int remainder=a%b;
int arr[MAX];
for(int i=0;i<=c;i++){
int result=remainder*10;
arr[i]=result/b;
remainder=result%b;
}
printf("Case %d:%d.",t,integer);
if(arr[c]>=5) arr[c-1]++; //四舍五入
for(int i=0;i<c;i++){
printf("%d",arr[i]);
}
printf("\n");
}
//printf("Time Used =%.2f\n",(double)clock()/CLOCKS_PER_SEC); //计算时间
return 0;
下一篇: 1032 挖掘机技术哪家强