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

C#使用命令行参数实现数字阶乘报索引越界错误如何解决

错误原因

你遇到的System.IndexOutOfRangeException异常是因为代码尝试访问args[0]获取输入值,但在线评测系统的测试用例是通过标准输入(STDIN)传输数据,而非命令行参数args传递,此时args数组为空,访问索引0自然会触发数组越界。

修复后的代码

using System;
class Solution {
    static void Main(String[] args) {
        int result = 1;
        // 从标准输入读取内容并转换为整数
        int fact = int.Parse(Console.ReadLine().Trim());
        
        for(int i = 1; i <= fact; i++)
        {
            result *= i;
        }
        Console.WriteLine(result);
    }
}

注意事项

  • 不需要额外引入System.Collections.Generic和System.IO命名空间,代码中未用到相关功能
  • 原代码中判断fact==0的分支可以省略,因为0的阶乘是1,当fact=0时for循环不会执行,result默认值1就是正确结果,逻辑更简洁
  • 如果要兼容异常输入场景,可以用int.TryParse替代int.Parse做类型转换,避免非法输入触发格式异常,大部分在线评测平台的测试用例输入都是合法的,直接用int.Parse即可满足要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:24:04