奇怪,圆的面积显示出来是错误的??
首先,我看视频教程,里面有个例题是这样写的:#include <stdio.h>
void main ()
{
float PI=3.14159;
int s,r=5;
s=r*r*PI;
printf("s=%d\n",s);
}
视频教程里面说,PI是实型,在编译器编译的时候,都会自动转换为double。
而r是整型,当r跟PI这两个数字发生计算的时候,都会转换成double型计算。
s也是整型,所以赋予的值最终也是整型,舍弃了小数点部分。
我自己在VC6里面做了一遍,结果是 s=78。
然后我想了一下,不把圆面积计算出来乘积的小数部分舍弃,于是做了如下修改:
#include <stdio.h>
void main ()
{
double s,PI=3.14159;
int r=5;
s=r*r*PI;
printf("s=%d\n",s);
}
编译之后,没有error,也没有warning
不过最后结果却是 s=1133871366
请问,我是出了什么差错吗?