#include<stdio.h>
int main()
{
float r,h,l,s,sq,vq,vz;
const float pi=3.1415;
printf("r=?,h=?\n");
scanf("%f %f",&r,&h);
l=2*pi*r;
s=pi*r*r;
sq=4*pi*r*r;
vq=3.0/4.0*pi*r*r*r;
vz=pi*r*r*h;
printf("圆周长l=%6.2f\n",l);
printf("圆面积s=%6.2f\n",s);
printf("球面积sq=%6.2f\n",sq);
printf("球体积vq=%6.2f\n",vq);
printf("圆柱体积vz=%6.2f\n",vz);
return 0;
}输出结果错误 为什么?
1 回答
微光TY
TA贡献3条经验 获得超0个赞
精度问题,const float pi=3.1415,vq=3.0/4.0*pi*r*r*r; 发生强制转换,r原本为float型,因为表达式存在更高的精度double,因此提升为double型,但是输出的时候又转化为float输出
- 1 回答
- 0 关注
- 903 浏览
添加回答
举报
0/150
提交
取消