You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode求二进制数组连续1最大个数代码报错问题咨询

问题原因及解决方法

错误原因

你遇到的报错error: control reaches end of non-void function本质是:

  • 函数findMaxConsecutiveOnes声明为返回int类型,但代码执行到函数末尾时没有返回任何值,仅用printf打印了结果。
  • LeetCode的编译环境将这类不符合规范的写法直接视为错误(通过-Werror=return-type参数强制),因此触发报错;而CodeBlocks默认未开启该严格检查,所以能运行,但这属于违反C语言标准的写法。

修正后的代码

把末尾的printf("%d", max);替换为返回语句即可(LeetCode需要函数返回结果而非打印):

int findMaxConsecutiveOnes(int* nums, int numsSize){
 
    int counter = 0;
    int max = 0;
    
    for(int i =0; i < numsSize; i++){
        if(nums[i] == 1){
            counter++;
        }
       else{
            counter = 0;
        }
        if(counter > max){
            max = counter;
        }
    }
    return max;
}

补充说明

LeetCode的判题逻辑依赖函数的返回值来验证答案,因此不需要printf语句,直接返回计算好的连续1的最大个数即可。

内容的提问来源于stack exchange,提问作者Mohammad Bakeer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:39:58