程序如下:#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; }