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

C#控制台整数数组处理功能开发与代码bug排查

功能需求

开发控制台应用程序,需实现以下核心逻辑:

  • 接收用户输入的整数类型数值并存入数组
  • 计算数组内数值的总和、最小值、最大值
  • 将处理完成的数值有序打印到控制台
现有代码问题说明

已完成数值录入、数组去重、排序输出的基础逻辑,目前存在3个待修复/补充的点:

  1. 输入提示逻辑顺序错误:当前代码先读取用户输入,再打印序号提示,首次输入无对应引导,交互逻辑反向
  2. 无输入合法性校验:用户输入非整数、小于等于0的数组长度时,程序会直接抛出异常崩溃
  3. 缺失核心计算模块:未实现总和、最小值、最大值的计算与输出逻辑
修复后完整代码
using System;
using System.Linq; // 必须引用此命名空间,才能使用Distinct、Sum、Min、Max等扩展方法

class Program
{
    static void Main()
    {
        int k;
        // 校验数组长度输入合法性
        while (true)
        {
            Console.WriteLine("\n   请输入要录入的数字总个数:\n");
            if (!int.TryParse(Console.ReadLine(), out k) || k <= 0)
            {
                Console.WriteLine("   输入无效,请输入大于0的正整数!");
                continue;
            }
            break;
        }

        Console.WriteLine("   请开始输入数字:");
        int[] myArray = new int[k];

        // 修复输入提示顺序,增加单数字输入校验
        for (int i = 0; i < k; i++)
        {
            int inputNum;
            while (true)
            {
                Console.Write($"   第 {i+1} 个数字:");
                if (!int.TryParse(Console.ReadLine(), out inputNum))
                {
                    Console.WriteLine("   输入无效,请输入整数类型数值!");
                    continue;
                }
                break;
            }
            myArray[i] = inputNum;
            if (i != k-1)
            {
                Console.WriteLine("   已记录,请输入下一个数字:");
            }
        }

        // 数组去重
        int[] newArray = myArray.Distinct().ToArray();

        // 数组排序
        Array.Sort(newArray);
        Console.WriteLine("\n   去重并排序后的数字为:");
        foreach (int num in newArray)
        {
            Console.Write("   | " + num);
        }
        Console.Write(" |");

        // 补充计算逻辑:如果需要基于原始输入数组(包含重复值)计算,将下方的newArray替换为myArray即可
        int sum = newArray.Sum();
        int minVal = newArray.Min();
        int maxVal = newArray.Max();

        // 输出计算结果
        Console.WriteLine("\n\n   统计结果:");
        Console.WriteLine($"   数组总和:{sum}");
        Console.WriteLine($"   最小值:{minVal}");
        Console.WriteLine($"   最大值:{maxVal}");
    }
}
补充说明
  • 上述代码默认基于去重排序后的数组计算总和、最值,如果需要统计用户原始输入(包含重复值)的计算结果,只需将Sum()、Min()、Max()方法的调用对象从newArray改为原始数组myArray即可
  • 增加的两层输入校验逻辑可以避免用户非法输入导致的程序崩溃,不需要额外写try-catch异常捕获

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:15:35