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

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 关注
  • 917 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号