-
2021-10-11 19:18:53
#include
int main()
{
\n为被除数,m为除数
double n, m;
scanf("%lf %lf",&n,&m);
int k;
if((n/m)>=((((int)(n)/(int)m)+0.5))){
k=(int)(n)/(int)m+1;
}
else{
k=(int)(n)/(int)m;
}
printf("%d",k);
return 0;}
更多相关内容 -
C语言四舍五入的函数
2012-09-27 09:13:23四舍五入的函数的小函数,可以用c++和c语言进行编译。 -
c语言四舍五入算法x_c语言四舍五入保留两位小数
2020-03-05 02:26:36算法如果要求将数据h精确到小数点后面的第n位则需要对n+1位进行运算方法是将该数乘以10的n+1次方后加5然后除以10并强制转换变量类型为长整型再将该数强制转换类型为浮点型再除以10的n次方 long t;... -
c语言四舍五入保留小数
2022-06-02 17:18:29c语言四舍五入保留小数在此我们以保留一位小数为例子,来进行说明,希望能给大家带来收获:
精华在第7行, 举个例子吧,
eq:sum = 3.6589
sum = sum*100+5 = 370.89
sum/100 = 3.7089
printf(“%.1lf\n”,sum) //.1的意思是保留一位小数
这样结果就为3.7了
-
C语言 四舍五入问题
2021-05-24 06:59:55问题补充:求一维数组x[N]的平均值,并多所的结果进行四舍五入保留两位小数。例如:当x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0}时,输出结果为:avg=15.030000.#include #include double fun...问题补充:
求一维数组x[N]的平均值,并多所的结果进行四舍五入保留两位小数。
例如:当x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0}时,输出结果为:avg=15.030000.
#include
#include
double fun(double x[10])
{
int i;
long t;
double avg = 0.0;
double sum = 0.0;
for (i=0; i<10; i++)
sum+=x[i];
avg = sum/10;
avg = avg*1000;
t = (avg+5)/10;
avg = (double)t/100;
return avg;
}
main()
{
double avg, x[10] =
{15.6, 19.9, 16.7, 15.2, 18.3, 12.1, 15.5, 11.0, 10.0, 16.0};
int i;
printf("\nThe original data is :\n");
for (i=0; i<10; i++)
printf("%6.1f", x[i]);
printf("\n\n");
avg = fun(x);
printf("average=%f\n\n", avg);
}
程序里面
avg = avg*1000;
t = (avg+5)/10;
avg = (double)t/100;
是什么意思,能详细解释一下吗?
-
C语言四舍五入算法PPT课件.pptx
2021-10-06 23:16:17C语言四舍五入算法PPT课件.pptx -
C语言四舍五入算法PPT学习教案.pptx
2021-10-06 23:40:25C语言四舍五入算法PPT学习教案.pptx -
C语言四舍五入的原理分析
2019-04-15 18:42:43这下大家应该能懂四舍五入了吧? 有时候四舍五入还会跟左右对齐一起混合使用,我也列出来了。 到这里,对 `%N.Bf` 你应该知道它无非就是触发四舍五入和触发右对齐的机制嘛。清晰的笔记代表清晰的头脑。
之前写这篇文章,以为自己把这个话题说明白了,看评论区反馈,
按照费曼学习法,我没把这个东西说明白,反而是我自己没搞懂,
那么再优化一下,采用具体的场景C语言四舍五入的原理分析
1. 四舍五入
1.0. c语言在线编辑工具
在线编译c语言工具
可以快速调试文章当中的C语言代码。
快速收到正确或错误的反馈。1.1 什么是四舍五入?
结合数学知识,来看下面的数学问题:
什么是四舍五入?看下面的例子你就回忆起来了。
看例子来感觉一下,就不讲文字了,否则很枯燥。/*要求保留1位小数 93.35 要求保留一位小数 那么此时依据四舍五入,应该向前一位进一,就是93.4 */
我们来看这样的代码,是评论区伙伴摘自 c primer plus第六版中文版73页的例子。
代码及运行结果:
3522.99 —> 38523.0,
%3.1f
告诉你,保留1位小数,看第二位是否比5大?如果是,就进1,所以就是3522.99 —> 38523.0。
这个逻辑大家都懂。好,我要变身了
3522.99 —> 3522.99
%3.2f
保留2位小数,因为只有2位小数,所有不会触发四舍五入的机制。【下一位没有无法进行四舍五入呀,没办法进1呀】
这个逻辑大家都懂。再来看:
3522.99 —> 38523.0
%4.1f
,你应该明白了,
保留1位小数,看第二位是否比5大?如果是,就进1,所以就是3522.99 —> 38523.0。再来看:
%4.2f
,你应该也明白了,
保留2位小数,因为只有2位小数,所有不会触发四舍五入的机制。【下一位没有无法进行四舍五入呀,没办法进1呀】读完以上的文字 + 图片,你就从感觉上懂了四舍五入,这还不够,得深挖一层。
解读
%N.Bf
:
对于一个浮点数,比如float RENT = 38522.99;
,
RENT 的整数位有5位,小数点有1个,小数有2位。
是否四舍五入看:
我这个程序里面,比如我这里是float RENT = 38522.99;
,
它要保留几位小数,假设是保留%N.Bf
中的B位小数,就得看下一位是否比5大,如果是就进1,否则就舍掉。再看保留的小数位数不够补0的问题:
代码如下:#include <stdio.h> int main() { double w=123.1236; printf("123456789"); // 空格个数参考 printf("%9.3f\n",w); printf("%9.4f\n",w); printf("%9.5f\n",w); printf("%9.6f\n",w); return 0; } /* 123456789 123.124 123.1236 123.12360 123.123600 */
可以看到
double w=123.1236
小数位是4位,
当%N.Bf
中的B是5的时候,即保留5位小数,5-4=1,这缺少的一位小数用0填补,即123.12360;
当%N.Bf
中的B是6的时候,即保留6位小数,6-4=2,这缺少的两位小数用00填补,即123.123600;可以看到,输出结果左边还有空格导致它们没有对齐输出。这个问题见下一小节,咱一点一点的捋顺问题。
到这里,
%N.Bf
中只有B用到了,它不仅决定了保留几位小数且会触发四舍五入的机制,还决定了保留的位数不够用0来凑。%N.Bf
中的N有什么用呢?
为了不混淆,N的用处见下一小节。2. 左右对齐
2.1 什么是左右对齐
先给结论,N的作用是触发右对齐的机制。
看例子来感觉一下,就不讲文字了,否则很枯燥。
上面例子的代码:#include<stdio.h> main() { float a=3.123456789; int b=123456789; printf("%d\n",b); printf("%9.3f",a); }
浮点数定义的是
float a = 3.123456789;
你看到了%N.Bf
即%9.3f
,是不是立马能反应过来要保留B位小数,即保留3位小数,看第四位是4 < 5,舍掉,所以输出3.123
,
这个逻辑大家都懂。
但是为啥3.123
前面还有4个空格?【比较123456789,3.123中的3跟5对齐,说明在3的左边有4个空格】
这就用到了%N.Bf
中的 N。
怎么用的呢?/* 对于%N.Bf,具体化即 %9.3f,小数是 3.123456789 N表示总位数,这个总位数是这样的: 总位数N = 整数位数 + 小数点 + 小数位数 整数位数 = 总位数N - 小数点 - 小数位数 在这里,总位数N是9, 小数点是1个, 小数位数是3位, 那么 整数位数 = 总位数N - 小数点 - 小数位数 即 9 - 1 -3 = 5 整数位是5是啥意思呢? 表示至少有5个整数, 我们知道了 3.123456789 中的3 已经是1个整数了对吧? 此时 5个整数 - 1个整数 = 4个整数 那这缺少的4个整数怎么表示呢? 你已经猜到了,就是在3.123456789 中 整数3的左边补4个空格,这样就凑够了5个整数位数。 到这里大家都懂吧? */
既然是左右对齐,上面的例子就是右对齐。
展示左右对齐的简单例子:
【右对齐就是你在博客打字,按空格,光标/鼠标往右边跑】【所以,右对齐,左边补空格,是正确的】
【左对齐就是你在博客删字,光标/鼠标往左边跑】
这下大家应该能懂四舍五入了吧?
有时候四舍五入还会跟左右对齐一起混合使用,我也列出来了。
到这里,对%N.Bf
你应该知道它无非就是触发四舍五入和触发右对齐的机制嘛。有问题在评论区中留言,我会反馈的。
给优秀上进的你点赞~
最后,在学习的时候,有些东西必须上机实践,尤其是编程,为什么?因为别人说的不一定是正确的【包括我自己】,
最好的验证方式是让代码的执行结果说话,这是可靠的。 -
C语言四舍五入函数
2019-04-15 12:04:55C语言四舍五入函数 -
C语言四舍五入的实现方法。
2015-04-16 21:00:27今天在oj上看到了一道看起来很简单的题目,结果四舍五入竟然找不到很好的算法实现,百度了一下发现...这么简单!!!所以还是要继续努力啊,加油! Description 在我们的日常学习、生活、工作中要分得清主次,既能... -
C语言四舍五入
2020-01-23 16:33:45C语言四舍五入 将浮点数取整或者四舍五入的数据处理情况经常见到,下面做一下总结 注意函数取整返回值均为double型,在用printf输出时应注意 头文件#include #include<iostream> #include<cmath> using ... -
C语言四舍五入函数lrintf()用法
2021-05-19 14:29:43函数定义在math.h'''inline long __cdecl lrintf (float x){long retval;__asm fld x__asm fistp retvalreturn retval;}'''测试程序:'''#include #include #include using namespace std;int main(int argc, char *... -
C语言-实现四舍五入
2022-04-05 12:38:10四舍五入之后的整数 示例1 输入: 14.99 输出: 15 #include <stdio.h> int main () { float x; int y; scanf("%f",&x); if(x>=0) { y=(int)(x+0.5); printf("%d",y); } else { y=... -
C语言实现四舍五入
2021-10-26 19:51:21要用C语言实现四舍五入,有一个很巧妙的方法。仅使用 int i = (int)(a + 0.5)即可。如果遇到有负数的情况,只需要将加号改为减号即可。 -
c语言四舍五入printf
2019-08-27 21:16:13#include #include #include #include #include #include <cmath>//应用log函数 #define N 100005 #define ll long long using namespace std;...//输出0 0,不会四舍五入 return 0; -
C语言四舍五入算法
2017-09-07 18:48:00对h进行四舍五入 1. 网络上搜索来的: C语言取整规则: (int)(h + 0.5) 2. 二级教程: 四舍五入并精确到小数点后面的第n位: 实例: 转载于:https://www.cnblogs.com/lqcdsns/p/7491270.html... -
请问c语言如何实现四舍五入?
2021-05-20 03:22:08为什么 329.835 会变成 329.83,529.835 会变成 529.84,就是因为在内存中的数字是用二进制表示的,不可能准确表达十进制小数后三个位,刚好 329.835 在内存中相当于 329.83499...,不足 329.835,就会出现这个情况... -
c语言四舍五入然后保留2位小数怎么弄?
2021-11-28 17:36:27输入园锥体的底半径r和高h,计算并输出圆锥体的体积(四舍五入保留两位小数)。圆锥体体积计算公式为: v=πrh*2/3。π=3.14 -
c语言四舍五入
2022-04-01 15:01:23#include int main() { float a=5.8; int b; b=a+0.5; printf("%d",b); return 0; } 输出结果 #include int main() { ... } 运行结果 原理 c语言有着严格的数据类型要求,给整型变量赋含有小数的值时,会强制抹去小数。 -
c语言题目详解——实现四舍五入
2022-04-06 21:24:14将浮点数转换为整数类型,要求四舍五入。 输入描述: 随机输入的浮点数 输出描述: 四舍五入之后的整数 示例 输入: 14.99 复制输出: 15 二.解答思路 1.可以使用一个if else语句,将 " 正数 " 和 " ... -
C语言四舍五入之有趣的现象
2022-01-06 20:40:43在前不久打代码做题突然思考到一个人问题,怎么去四舍五入? 然后查询了很多资料,但我个人发现一个很有趣的现象。 当想要所得数保留整数时,#include<stdio.h>这样就可以使得输入浮点型并输出保留整数的值... -
C语言四舍五入以及保留小数
2016-05-24 06:04:51怎么实现用C 语言四舍五入并保留小数点后7 位小数,以及类似的问题,谢谢 -
C语言的四舍五入实现
2021-08-17 21:44:39//四舍五入实现 if(account) { printf("OK"); } else if(account) { printf("Exceed %d%%. Ticket 200",c); } else { printf("Exceed %d%%. License Revoked",c); } return 0; } 四舍五入实现举例: int main() { ... -
C语言中实现四舍五入
2021-03-13 21:08:59C语言中实现四舍五入: (int)(a+0.5)即可。 很巧妙的用了取整规则。 也不用导入math.h 同样注意负数的情况。 把 + 换成 - 即可。 float f = ……; int i = (int)(f + 0.5); i就是f四舍五入的结果。 今天我要介绍在... -
“四舍六入五成双规则” 与 C语言如何实现“四舍五入”
2021-04-15 10:57:05对于位数很多的近似数,当有效位数确定后,其后面多余的数字应该舍去,只保留有效数字最末一位,这种修约(舍入)规则是“四舍六入五成双”,也即“4舍6入5凑偶”这里“四”是指≤4 时舍去,"六"是指≥6时进上,"五... -
C语言四舍五入计算方法(包含各种精度)
2022-06-18 22:46:56刷题时遇到四舍五入能迅速解决吗?看完这篇文章让你在刷题时时轻松应对。 -
四舍五入算法-C语言
2021-05-06 09:29:29四舍五入算法-C语言 四舍五入算法:如果要求精确到小数第N位,则需要对N+1进行运算,方法是将该 数 乘以 10^N+1 次方后 + 5,然后除以10并强制转换成长整形(Long)型,再将该数除以10的N次方,同时转换为浮点型... -
C语言中关于四舍五入的计算方法
2020-07-11 21:45:36C语言中关于四舍五入的处理 利用取整运算截断 eg: 数字0.45 取整后结果为0; 数字3.67取整后结果为3; 做整数部分的四舍五入 即:x=(int)(0.45+0.7) 取整后结果为1; #include<stdio.h> int main(void) { ...