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

C# .NET 5.0 实现数组取第二大元素出现数组越界错误求解

错误触发原因

你代码中第二个for循环的终止条件为i < input.Length,当循环变量i等于input.Length - 1时,代码中input[i + 1]的下标取值为input.Length,超出了C#数组的合法索引范围(数组下标从0开始,最大合法值为数组长度减1),因此必然触发数组越界异常。

同时你当前的遍历逻辑无法实现“提取去重后第二大元素”的需求,即使修复越界问题也无法得到预期输出。

修复后完整代码

using System;
namespace second_largest
{
    class Program
    {
        static void Main(string[] args)
        {
            // 读取输入并转换为double数组
            double[] input = Array.ConvertAll(Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries), Convert.ToDouble);
            
            // 兼容输入元素不足的情况
            if (input.Length < 2)
            {
                Console.WriteLine("输入元素数量不足");
                return;
            }

            // 冒泡排序从大到小排列
            for (int repeat = 0; repeat < input.Length; repeat++)
            {
                for (int j = 0; j < input.Length - 1; j++)
                {
                    if(input[j] < input[j+1])
                    {
                        double temp = input[j];
                        input[j] = input[j + 1];
                        input[j + 1] = temp;
                    }
                }
            }

            // 查找去重后的第二大元素
            int distinctCount = 1;
            for (int i = 0; i < input.Length - 1; i++)
            {
                if (input[i] != input[i + 1])
                {
                    distinctCount++;
                    if (distinctCount == 2)
                    {
                        Console.WriteLine(input[i + 1]);
                        return;
                    }
                }
            }

            // 所有元素都相同的情况
            Console.WriteLine("所有输入元素值相同,无第二大元素");
        }
    }
}

核心修改点

  • 调整第二个遍历循环的终止条件为i < input.Length - 1,从根源避免访问i + 1时越界
  • 新增去重计数逻辑,遍历过程中每遇到不同的值就计数+1,计数到2时对应的元素就是去重后的第二大值,输出后直接终止程序
  • 新增输入边界兼容逻辑,处理输入元素不足2个、所有元素值完全相同的异常场景
  • 优化输入分割逻辑,新增StringSplitOptions.RemoveEmptyEntries参数,避免连续空格导致转换失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:36:01