本文主要是介绍C语言实现 分数化小数(decimal),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
输入正整数a ,b ,c ,输出a /b 的小数形式,精确到小数点后c 位。a ,b ≤106 ,c≤100。输入包含多组数据,结束标记为a =b =c =0。
样例输入:
1 6 4
0 0 0
样例输出:
Case 1: 0.1667
计算机运算是无法限定指定保留数位的
具体计算机除法的实现可以参考这本书《计算机组成与设计(硬件软件接口)》的第三章部分
这道题我们采用一步步模拟手算除法的方式解决
#include<stdio.h>int main(){int a,b,c,count=1;while(scanf("%d%d%d",&a,&b,&c)==3){if(a==0&&b==0&&c==0) break;//获取整数部分,可理解为手算除法的写商int integer=a/b;printf("Case %d:%d.",count++,integer);//获取余数部分,可理解为手算除法的写余数a%=b;int i=1;//从i=1到i=c-1,进行小数点后c-1次运算,算得c-1个小数位while(i++<c){//余数乘十,继续往后算a*=10;printf("%d",a/b);a%=b;}//考虑到第c+1位四舍五入得需要,最后一位第c位进行单独处理a*=10;printf("%d",((((a%b)*10/b)>5)?(a/b+1):(a/b)));}return 0;
}
这篇关于C语言实现 分数化小数(decimal)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!