C语言中出现错误illegal use of floating point

# define PI 3.1415926;
# include <stdio.h>
void main()
{
float r,h,yzch,ymj,yqbmj,yqtj,yztj;
scanf("%f%f",&r,&h);
yzch=2*PI*r;
ymj=PI*r*r;
yqbmj=4*ymj;
yqtj=4*PI*r*r*r/3;
yztj=ymj*h;
printf("%4.2f %4.2f %4.2f %4.2f %4.2f",yzch,ymj,yqbmj,yqtj,yztj);
}

提示第7行,第8行,第10行出现错误

# include <stdio.h>
# define PI 3.1415926 //不需要分号
void main()
{
float r,h,yzch,ymj,yqbmj,yqtj,yztj;
scanf("%f%f",&r,&h);
yzch=float(2*PI*r); //运算结果强制类型转换成float
ymj=float(PI*r*r);
yqbmj=4*ymj;
yqtj=float(4*PI*r*r*r/3);
yztj=ymj*h;
printf("%4.2f %4.2f %4.2f %4.2f %4.2f",yzch,ymj,yqbmj,yqtj,yztj);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-20
确实是PI宏定义有瑕疵,那个分号多余,至于为什么自己查书。不信你把用到PI的式子都改一下,仅仅是把PI放在最后,比如2*r*PI,就行了。
第2个回答  2011-09-20
去掉#define PI 3.1415926;的;号。
因为PI被定义为3.1415926;,是字符串,不是浮点数了,所以出错。
第3个回答  2011-09-20
好像是define出了问题,你把# define PI 3.1415926;
换成float PI=3.1415926;
就行
第4个回答  2011-09-20
去掉 # define PI 3.1415926;
后面的分号就可以啦!!宏定义后面是不用加符号的!!!
相似回答