C语言报错,请问哪里出错了?该怎么改?

如题所述

系统显示两个错误,其实都是指向max的申明问题的。如下:

    在main函数中使用了max,但是max没有事先申明。C语言规定用户自定义的变量和函数都需要事先申明。修改方法是:在main函数之前申明max函数

    max(float x,float y);

    修改编译后错误消失:

2.现在只有两个警告,第一个警告是说明main函数应该有无类型返回值,这个的修改只需要在main前加上void就可以了。

3.程序中还有一个警告。注意在main函数中c是一个int类型的变量,但是max函数返回了一个float类型的值,把一个float类型的值赋值给int类型的变量会有精度损失。所以将max函数返回值类型修改为float,c也修改为float。注意:main前的申明语句也要修改。

另外,注意一点:由于精度问题,当两个非常相似的float数据比较时可能会有错误的结果。所以float数剧的比较,常常设置精度进行比较。

例如:if (x-y)>0.001 then return x

else return y

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-22
两个错误:
1、定义max函数时,丢掉了返回值的类型。修改方法,在max前加上float,改为下面一行:
float max(float x,float y)
2、在main函数中非法调用max函数(调用未声明或定义的函数)。修改方法有两个:
(1)把函数定义部分放到main函数之前;
(2)在main函数内的增加下面一行,放在第一行:
fliat max(fliat x,fliat y);
第2个回答  2018-11-22

GCC 会告诉你错在哪里。在 main 中调用的 max 的时候对其进行了隐式声明,最终导致重复声明。

在 main 开始前提前声明 max 即可

相似回答