欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

相关标签: C 算法