求助,我是c语言菜鸟
本帖最后由 Prentis 于 2014-1-20 16:11 编辑#include <stdio.h>
void main()
{
float PI=3.14159;
double s;
int r = 5;
s = r * r * PI;
printf("s=%d\n",s);
}
这个程序错哪了,为什么运行的结果是s=1342177280
printf语句输出格式写错了,把%d改成%f #include <stdio.h>
void main()
{
float PI=3.14159;
double s;
int r = 5;
s = r * r * PI;
//printf("s=%d\n",s);//是%f不是%d
printf("s = %f\n",s);
} r是整形,PI是浮点型,%d改成%f这个程序就是正确的了 printf("s=%d\n",s); 这一句错了,%d表示以十进制整数输出。改成%f 改成%f看看 强制转换一下数据类型,float和int数据类型不同,你要定义的话,可以定义成全是float的,比如,floatr=5.0 ,还有就是你可以使用宏定义,定义下pi,不过我建议你还是找些简单的数学计算吧。不一定非要用这个 啥?!!咋还有double数据类型,你要把三个数据类型转换成一种数据类型才行,不过别使用int,因为pi,3.1415926,计算结果会自动截取小数点,直接现实整数的 你还是都使用double吧,这种程序,网上都这样写的。我也是新手,只是给个建议。 三个数据都是不同类型的啊,如果直接计算的话编译器好像会把其他数据类型转化成int类型,但是不准确
把printf语句的d%格式改成f%格式估计就没问题了
页:
[1]