【发布时间】:2020-03-26 09:12:01
【问题描述】:
这是查找最多四个数字的代码:
#include <iostream>
#include <cstdio>
using namespace std;
int max_of_four(int a,int b,int c,int d) {
if(a>b&&a>c&&a>d)
return a;
else if(b>a&&b>c&&b>d)
return b;
else if(c>a&&c>b&&c>d)
return c;
else if(d>a&&d>c&&d>b)
return d;
}
int main() {
int a,b,c,d;
scanf("%d %d %d %d",&a,&b,&c,&d);
int ans;
ans=max_of_four(a,b,c,d);
printf("%d",ans);
return 0;
}
但我收到这样的警告:
控制到达非空函数的结尾 -wreturn-type
这个错误是什么意思?
为什么会出现这个错误?
【问题讨论】:
-
您还没有涵盖函数中的所有案例。只需添加
... else { return 0; }。 -
如果没有一个 if 是
true,则不返回任何内容。这是未定义的行为。 -
问问自己如果
a、b、c和d都相等会发生什么。 -
@john 好的,但返回 0 不是错误。我刚刚添加了一个可以修复编译错误的示例。然后,OP 会将逻辑应用于他的案例。
-
顺便说一下,有一个更好的方法来计算最大值。像 max = a;如果 (b) > max max = b;如果 (c> 最大值) 最大值 =c;如果 ( d > 最大值 ) 最大值 = d;返回最大值;
标签: c++