C语言计算圆的面积的问题

2024-12-28 05:43:14
推荐回答(5个)
回答1:

楼主你好
你定义的宏:PI=3.14 这里没有指明PI的数据类型
在c语言中 浮点数没有指明类型的 默认为双精度double型的

而你定义的s、r都是单精度float 这样在执行s = r * r * PI 会发生类型不匹配的错误

一个简单的方法就是: float r,s 改为:double r,s

希望能帮助你哈

回答2:

PI 被定义为 3.14,第9行预处理的结果是:
s=r*r*3.14;
常量3.14默认为double型,那么等号右面的结果就是double型,而s被定义为 float,float表达的数的范围没有double大,所以有编译告警。
修改:两种方法:把3.14定义为3.14f, #define PI 3.14f
或者,r s 两个变量定义为double

回答3:

#include
#include
#define PI 3.14;
int main(void)
{
float r,s;
printf("输入圆的半径:\n");
scanf("%f",&r);
s = r * r * PI;
printf("圆的面积为:%f\n",s);
return 0;
}
输入圆的半径:
2
圆的面积为:12.560000
Press any key to continue
没问题啊

回答4:

PI = 3.14 这个字面值是double类型,不是float类型
直接解决的方法就是把r s都定义成double

回答5:

#include 这个有用?
运行程序输入时把r输成5.0(r.0)试试,应该就是个变量类型不同的问题吧。