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

C#做CodeChef数组反转题时输入读取错误输出异常如何解决

问题分析与修复方案

错误原因

  • 核心问题是误用了Console.Read()方法:该方法每次仅读取输入流中的单个字符,返回值是该字符对应的ASCII编码数值,而非完整的整数。你输入的第二行内容1 2 3 4按字符拆分依次是'1'(ASCII值49)、空格(ASCII值32)、'2'(ASCII值50)、空格(ASCII值32),循环4次恰好读取前4个字符的ASCII值,倒序输出后就得到了你看到的32 50 32 49结果。
  • 额外潜在问题:如果输入的整数位数大于1(比如10、23),用Console.Read()完全无法读取到正确的整数值,只能逐字符读到每个数位的ASCII码。

修复方案

将第二行输入的读取逻辑改为先读整行,再拆分转换为整数数组即可,修改后代码如下:

using System;

public class Test
{
    public static void Main()
    {
        int N = Convert.ToInt32(Console.ReadLine());
        // 读取第二行整行,按空格分割为字符串数组,过滤空值后转成int数组
        int[] arr = Array.ConvertAll(Console.ReadLine().Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries), int.Parse);
        for(int j = N - 1;j >= 0;j--){
            Console.Write(arr[j]);
            Console.Write(" ");
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:57:06