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

 我来答
佳黛218
2018-11-22 · TA获得超过239个赞
知道小有建树答主
回答量:65
采纳率:55%
帮助的人:28.6万
展开全部

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

  1. 在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

Yuqi_Tan

2018-11-22 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3469万
展开全部
两个错误:
1、定义max函数时,丢掉了返回值的类型。修改方法,在max前加上float,改为下面一行:
float max(float x,float y)
2、在main函数中非法调用max函数(调用未声明或定义的函数)。修改方法有两个:
(1)把函数定义部分放到main函数之前;
(2)在main函数内的增加下面一行,放在第一行:
fliat max(fliat x,fliat y);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-11-22
展开全部

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

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式