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

HackerRank plusMinus函数运行结果不符合预期问题排查求助

代码问题排查
  • 核心逻辑错误:循环内错误判断了循环索引i的取值,而非数组元素arr[i]的取值
    你的代码中if(i > 0)、else if(i == 0)的判断对象是循环下标,测试用例数组长度为6,下标i会从0遍历到5:
    • i=0时触发零计数+1
    • i=1~5全部触发正数计数+1
    • 负数计数全程无触发,最终计算的比例和你给出的错误运行结果完全匹配,不符合统计数组元素正负零的需求
  • 输出格式错误:未按要求保留6位小数,输出的小数位数不符合题目规范

修正后代码

public static void plusMinus(List<int> arr)
{
    float noOfPositive = 0;
    float noOfNegative = 0;
    float noOfZero = 0;
    
    float length = arr.Count;
    
    for(var i = 0; i < arr.Count; i++){
        // 修改为判断数组元素值
        if(arr[i] > 0){
            noOfPositive += 1;
        }else if(arr[i] == 0){
            noOfZero += 1;
        }else{
            noOfNegative += 1;
        }
    }
    // 格式化输出保留6位小数
    Console.WriteLine($"{noOfPositive/length:F6}\n{noOfNegative/length:F6}\n{noOfZero/length:F6}");
}

验证结果

针对你给出的测试用例[-4,3,-9,0,4,1],修正后统计:

  • 正数共3个,占比3/6=0.500000
  • 负数共2个,占比2/6≈0.333333
  • 零共1个,占比1/6≈0.166667
    和预期输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:06:04