程序如下:#include <stdio.h>
#include <math.h>
int main(void)
{
int x=17,n=4,a,b;
a=floor(x/n);
b=ceil(x/n);
printf("%d\n",a);
printf("%d\n",b);
return 0;
}
#include <math.h>
int main(void)
{
int x=17,n=4,a,b;
a=floor(x/n);
b=ceil(x/n);
printf("%d\n",a);
printf("%d\n",b);
return 0;
}
问题:为什么运行后b的结果不是5而是4呢
改成如下:
{
int x=17,n=4,a,b;
a=floor(x/n);
b=ceil((float)x/n);//加上强制类型转换,把x转换为float类型
printf("%d\n",a);
printf("%d\n",b);
return 0;
}
本文探讨了在C语言中使用floor和ceil函数时遇到的一个常见问题:当整数除以整数并向上取整时为何得不到预期结果。通过简单的代码修改解决了该问题。
5万+

被折叠的 条评论
为什么被折叠?



