解题思路:
优化一下楼上那位,楼上那位使用了floor函数


floor(x),也写做Floor(x),其功能是“向下取整”,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接取按照数轴上最接近要求值的左边值,即不大于要求值的最大的那个值)。

在C语言的库函数中,floor函数的语法如下 :

#include <math.h>

double floor( double arg );

功能: 函数返回参数不大于arg的最大整数。例如,

x = 6.04;

y = floor( x );

y的值为6.0.

与floor函数对应的是ceil函数,即上取整函数。

有趣的是,floor在英文中是地板的意思,而ceil是天花板的意思,很形象地描述了下取整和上取整的数学运算。


但我们思考一下,本身结果是一个浮点型的输出,如果我们进行强制类型转换为整形的,不也可以达成这样的功能么?


参考代码:

#include<stdio.h>
int main() {
	int m, y;
	double l;
	scanf("%d%lf%d", &m, &l, &y);
	printf("%.0d\n", (int)((1.0*m/y + m*l)*10000));
	return 0;
}

我在输出中改为为: printf("%.0d\n", (int)((1.0*m/y + m*l)*10000));

点赞(0)
 

0.0分

6 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 4 条评论

Xiaolang 2年前 回复TA
@Xiaolang printf("%d", d+2);  我又+2  就对了 。。。
Xiaolang 2年前 回复TA
int main()
{
	int a = 0,b=0,d=0;
	float c = 0;
	scanf("%d%f%d", &a, &c, &b);
	a = a * 10000;
	d = (a / b) + (a - b) * c;
	printf("%d", d);
	return 0;
}
  各位大佬  我这么写有什么不对吗?  怎么计算出来后 是33886  差两块钱 。。。
HRui 3年前 回复TA
@lizy 感觉0.d就没必要了,输出既然是整数不用强调没有小数了。直接%d结果应该也是对的
lizy 3年前 回复TA
你这个计算不对吧,本金/还款月数+本金*利率??本金/等额本金公式:每月还款额=贷款本金×[月利率×(1+月利率)^还款月数]÷{[(1+月利率)^还款月数]-1}