Kiwiii1
Kiwiii1
2019-10-13 10:13
采纳率: 0%
浏览 770

C语言中 int main()与 int main(void)的问题,为什么两者的输出的结果保留的小数点后的数字不同?

输入圆柱体的底面半径r和高h,计算圆柱体的表面积并输出到屏幕上。要求定义圆周率为如下宏常量
这是题目。下方的那个代码是标准答案,输出的值是30076.14。

#define PI 3.14159
#include
int main(void)
{
float r,h;
scanf("%f %f",&r,&h);
printf("%.2f",PI*r*r*2+PI*2*r*h);
return 0;
}

但是就按照我的原来编程(下面的几行代码是我原来的) 输出的值却是30076.13.是不是在S代入printf的时候出问题的。不太明白这两个代码之间究竟有什么区别,我只知道int main(void)是无参的,在代码最后要加上return 0,而intmain()不用

#define PI 3.14159
#include
int main()
{
float r,h;
scanf("%f %f",&r,&h);
float s= PI*r*r*2+PI*2*r*h;
printf("%.2f",s);

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • caozhy

    这是很正常的,浮点数存在精度误差,不同编译器,不同计算机,有微小的误差很正常。

    点赞 评论

相关推荐