我有一个具有int a和int b的函数,我要做的就是找到最大值

时间:2019-04-06 16:17:58

标签: c function max

我不断收到以下错误(警告:控件可能会到达非void函数[-Wreturn-type]的结尾)

这就是我现在所拥有的。

int min(int a, int b) {
    if (b > a) {
        return a;
    }
    if (a > b) {
        return b;
    }
}

2 个答案:

答案 0 :(得分:2)

如果b == a,则没有明确的返回值。您的编译器会警告您。

这就是为什么您应该始终使用最后一个} else {块的原因。

尽管添加

if (a == b){
    return a; // either would do
}

将是立即修复,如果您编写的min版本使用double类型,并且输入之一是{{1 }}。据我所知,目前还没有编译器会警告您。

但是,实际上,您应该完全放弃此功能,并使用受人尊敬的库中的那个功能。出于各种技术原因,NaN的规范编写方式是使用

min

答案 1 :(得分:1)

int min(int a, int b) {
    if (b > a){
        return a;
    }
    if (a > b){
        return b;
    }
}

您错过了a==b

的情况

可以只是

int min(int a, int b) {
  return (a < b) ? a : b;
}