ceil() 函数的相同参数的不同 return 值
diffrent return value for same arguement of ceil() function
#include<bits/stdc++.h>
using namespace std;
int main() {
int ans = ceil(1.5);
printf("%d\n", ans);
ans = ceil(3 / 2);
printf("%d", ans);
}
输出:
2
1
为什么这段代码在我的编辑器(vs 代码)中打印出不同的答案?
当你发送3/2作为参数时,你实际上发送了1。程序将3/2计算为int因此结果为1,然后第二次ans计算实际上是通过ceil(1.0)
而不是 ceil(3 / 2),你需要做 ceil(3.0 / 2.0)。在这种情况下,程序将其计算为 double,结果将为 1.5,这意味着第二个 ans 计算由 ceil(1.5).
实际上你正在向函数发送不同的参数 ceil
3 / 2
会先计算成整数1
,因为3
和2
都是整数所以运算符/
会return 一个整数。
所以你实际上是第二次调用 ceil(1)
#include<bits/stdc++.h>
using namespace std;
int main() {
int ans = ceil(1.5);
printf("%d\n", ans);
ans = ceil(3 / 2);
printf("%d", ans);
}
输出:
2
1
为什么这段代码在我的编辑器(vs 代码)中打印出不同的答案?
当你发送3/2作为参数时,你实际上发送了1。程序将3/2计算为int因此结果为1,然后第二次ans计算实际上是通过ceil(1.0)
而不是 ceil(3 / 2),你需要做 ceil(3.0 / 2.0)。在这种情况下,程序将其计算为 double,结果将为 1.5,这意味着第二个 ans 计算由 ceil(1.5).
实际上你正在向函数发送不同的参数 ceil
3 / 2
会先计算成整数1
,因为3
和2
都是整数所以运算符/
会return 一个整数。
所以你实际上是第二次调用 ceil(1)