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

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条回答 默认 最新

  • threenewbee 2019-10-13 10:17
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集