问题描述

分数化小数(decimal)
输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。a,b≤106 ,c≤100。输入包含多组数据,结束标记为a=b=c=0。

#include<stdio.h>
void question(int a,int b,int c)
{int i;printf("%d.", a / b);for (i = 1; i <= c; i++)   //依次输出小数点后c位的的数值{a %= b;       //得到上一阶段余数a *= 10; //将上一阶段的余数的小数点后移一位if (i == c&& ((a % b) * 10 / b >= 5))   //对最后一位进行进位运算printf("%d", a / b + 1);elseprintf("%d", a / b);}printf("\n");
}
void questionPlus(int a,int b,int c)
{int i, j, integer, demical;demical = 1;//demical初始化为1integer = a / b;for (i = 1; i <= c; i++){a %= b;a *= 10;//计算小数点后面的数字if (i == c && ((a % b) * 10 / b >= 5))   //对最后一位进行进位运算demical = demical * 10 + a / b + 1;else if(i==1)demical = demical + a / b;elsedemical = demical*10 + a / b;}for (j = 1, i=1; i < c; i++)   //j的位数与demical的位数应相同j *= 10;if ((demical - j) / (j * 10) != 0){integer++;demical -= j * 10;}printf("%d.", integer);for (i = 1; i <= c; i++){if (i == 1) //输出小数点后第一位printf("%d", demical / j - 1);else{//依次从第2位开始输出demical %= j;j /= 10;printf("%d", demical / j);}}printf("\n");
}
void questionPlusPlus(int a,int b,int c)
{int i, j, integer, demical[c];integer = a / b;for (i = 1; i <= c; i++){a %= b;a *= 10;//计算小数点后面的数字,存入相应的数组中if (i == c && ((a % b) * 10 / b >= 5))   //对最后一位进行进位运算demical[i-1] = a / b + 1;elsedemical[i-1] = a / b;}for(i=c-1;i>=0;i--){if(demical[i]==10){if(i==0)  integer++;else    demical[i-1]++;demical[i]=0;}}printf("%d.", integer);for (i = 0; i < c; i++)printf("%d", demical[i]);printf("\n");
}
int main(void)
{int a, b, c;while ((printf("请输入三个数:"))&&scanf("%d%d%d", &a, &b, &c) == 3 && !(a == b && b == c && c == 0)){printf("------第一个函数------\n");question(a,b,c);printf("------第二个函数------\n");questionPlus(a,b,c);printf("------第三个函数------\n");questionPlus(a,b,c);}
}

进行函数输出:

可以发现进行输入19999 20000 3 的时候,输出的结果出现不一致的问题,而第二个和第三个函数是正确的输入形式。
但是,对于现在来说,因为能力有限,不能进行相应的优化,第三种函数为最简单的一种函数了。


使用C语言编写一个算数的除法运算(保留n位小数)相关推荐

  1. sql两数相除保留两位小数_sql 除法运算 保留两位小数

    js限制输入数字能输入小数点,js定义数组,js往数组中添加数据,js将字符型转为数字型,除法结果保留两位小数--js小测:计算比赛得分 一个朋友跟我说要去给某个比赛算分: 规则:去掉最低分最高分求平 ...

  2. java除法计算保留2位小数

    int a=7;int b=9;DecimalFormat df=new DecimalFormat("0.00");System.out.println(df.format((f ...

  3. BigDecimal除法后保留两位小数

    BigDecimal numBigDecimal=new BigDecimal(5.33); numBigDecimal=ConvertNumber(numBigDecimal,3,2);//调用,5 ...

  4. bigdicmal除法精度设置_使用java求高精度除法,要求保留N位小数

    题目要求是高精度除法,要求保留N位小数(四舍五入),并且当整数部分为0时去除0的显示 import java.math.BigDecimal; import java.util.Scanner; pu ...

  5. Python中的除法保留两位小数

    在C/C++语言对于整形数执行除法会进行地板除(舍去小数部分).例如 int a=15/10; a的结果为1. 同样的在Java中也是如此,所以两个int型的数据相除需要返回一个浮点型数据的时候就需要 ...

  6. 保留两位小数除法算式_小学数学小数除法练习题

    小学数学小数除法练习题 篇一:小数除数练习卷 班级姓名 一.列竖式计算 7.83÷91.35÷2.7 54.4÷0.16 27÷1.8 6.76÷0.52 22.78÷3.4 4.8÷3 18÷48 ...

  7. java8 BigDecimal 除法保留三位小数 后面小数进位处理

    Java 8 中,可以使用 BigDecimal 类来处理高精度的小数除法.可以使用 setScale() 方法来保留小数位数,并使用 RoundingMode 来设置舍入模式. 例如,如果要将除法结 ...

  8. python输入一个正整数n求下列算式的值_C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值。,C语言 编写一个程序,输入一个正整数,求出它是几位数。...

    导航:网站首页 > C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值.,C语言 编写一个程序,输入一个正整数,求出它是几位数. C语言编写程序:输入一个正整数x和一个正整数n,求下 ...

  9. 用C语言编写一个Linux下的简单shell程序

    这是一个简单的C程序,展示了如何进行系统调用执行logout cd ls pwd pid rm mkdir mv cp等命令,这是一个简单的命令解释程序shell,其源代码如下: #include & ...

  10. C语言试题二十五之编写一个函数float function(double h),函数的功能使对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值位正数)。

    1. 题目 编写一个函数float function(double h),函数的功能使对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值位正数). 2 .温馨提示 C语言试题汇总里可用于 ...

最新文章

  1. 技术圈鄙视链形成的真实原因?
  2. PadLeft 和 PadRight
  3. 设计模式 适配器模式
  4. linux运行wordcount,Ubuntu16.04上运行Hadoop2.7.3自带example wordCount摸索记录
  5. C# DEV 树、Grid、下拉框等设定数据源对比
  6. Cocos Creator 使用 Android Studio 打包 APK 遇到的坑
  7. 基于改进麻雀算法优化变分模态分解(IAMSSA—VMD)的信号分解方法
  8. 统计学基础知识(二)
  9. k近邻算法_K近邻算法(一)
  10. 技术笔试面试题(上)
  11. 塞规公差带图_塞规公差计算表
  12. 软件质量模型ISO/IEC25010
  13. Node 插件 爬取王者荣耀官网英雄信息,并生成数据库
  14. 我是如何被快捷键折腾的
  15. 一个简单的安居客房屋信息爬虫
  16. Arrays.stream()
  17. git 如何进行版本回退?
  18. HTMLCSSHTTP
  19. 使用晨曦记账本,个人有效记账
  20. EEG实验后统一两种不同的脑电帽的电极点数据

热门文章

  1. mysql模糊匹配关键字_MySQL 关键字模糊匹配,并按照匹配度排序
  2. UG NX机床搭建仿真三四五轴CSE视频教程
  3. 数模(6):Leslie矩阵人口模型
  4. 录音转换成mp3格式
  5. pcb设计入门02-PCB封装库
  6. 【笔记分享】LED点阵屏幕显示原理
  7. 《Redis开发与运维》学习第一章
  8. SI 9000 及阻抗匹配学习笔记(二)
  9. php和vue实现智商在线测试题
  10. 小米蓝牙音响驱动_小米手机绝佳配件,20W无线闪充,支持唤醒小爱,只卖149