为了账号安全,请及时绑定邮箱和手机立即绑定

c语言编程找错

c语言编程找错

C
慕前端6184863 2017-10-17 21:24:55
#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输出

查看完整回答
反对 回复 2017-10-17
  • 1 回答
  • 0 关注
  • 903 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信