用vc++6.0计算习题4.8结果与turbo c不一致,哪边出有关问题了
用vc++6.0计算习题4.8结果与turbo c不一致,哪边出问题了
#include<stdio.h>
void main()
{
float pi,h,r,l,s,sq,vq,vz;
pi=3,1415926;
printf("请输入圆半径r,圆柱高h:\n");
scanf("%f,%f",&r,&h);
l=2*pi*r;
s=r*r*pi;
sq=4*r*r*pi;
vq=4.0/3.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);
}
结果为l= 9.00 Turbo c结果 l= 9.00
s= 6.75 s= 7.07
sq= 27.00 sq= 28.27
vq= 13.50 vq= 14.14
vz= 20.25 vz= 21.21
另外 vq=4.0/3.0*pi*r*r*r; 这一行又出现了warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data
如何解决,再继续忽略?
------解决方案--------------------
vq=4.0f/3.0f*pi*r*r*r;
#include<stdio.h>
void main()
{
float pi,h,r,l,s,sq,vq,vz;
pi=3,1415926;
printf("请输入圆半径r,圆柱高h:\n");
scanf("%f,%f",&r,&h);
l=2*pi*r;
s=r*r*pi;
sq=4*r*r*pi;
vq=4.0/3.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);
}
结果为l= 9.00 Turbo c结果 l= 9.00
s= 6.75 s= 7.07
sq= 27.00 sq= 28.27
vq= 13.50 vq= 14.14
vz= 20.25 vz= 21.21
另外 vq=4.0/3.0*pi*r*r*r; 这一行又出现了warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data
如何解决,再继续忽略?
------解决方案--------------------
vq=4.0f/3.0f*pi*r*r*r;