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
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况