解题思路:
优化一下楼上那位,楼上那位使用了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分
6 人评分
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 差两块钱 。。。
你这个计算不对吧,本金/还款月数+本金*利率??本金/等额本金公式:每月还款额=贷款本金×[月利率×(1+月利率)^还款月数]÷{[(1+月利率)^还款月数]-1}
HRui 2021-11-21 20:57:52 |
感觉0.d就没必要了,输出既然是整数不用强调没有小数了。直接%d结果应该也是对的
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:2498 |
不知道哪里错了浏览:1226 |
C语言训练-立方和不等式 (C语言代码)浏览:779 |
【亲和数】 (C语言代码)浏览:530 |
回文数(一) (C语言代码)浏览:809 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:1114 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:723 |
【简单计算】 (C语言代码)浏览:642 |
三角形 (C++代码)递归(存在大量重复计算,容易出现时间超限)浏览:836 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:687 |
Xiaolang 2022-03-10 20:31:01 |
printf("%d", d+2); 我又+2 就对了 。。。