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

C#如何将process、arrival等数组合并存入二维数组mat

多组数组合并为目标二维数组修复方案

原代码存在的问题

  • 变量误用:存储进程总数的process是int类型,不是数组,无法通过process[i]获取进程编号
  • 二维数组维度定义不符合需求:你需要的二维数组每行仅包含3个字段(进程号、到达时间、burst时间),原代码定义的10行6列固定维度既不匹配需求也无法适配可变的进程数量
  • 循环逻辑冗余错误:不需要嵌套双层循环,仅需单层循环遍历每个进程,分别给当前行的3个位置赋值即可
  • 输入数组存在溢出风险:arrival、burst初始化固定长度100,若输入进程数超过100会触发越界异常,应该根据输入的进程数动态创建

修复后可运行代码

// 变量定义调整
int processCount;
double[] arrival;
double[] burst;
double[,] mat;

Console.WriteLine("Enter number of Process: ");
processCount = Convert.ToInt32(Console.ReadLine());
// 动态创建二维数组:processCount行,3列
mat = new double[processCount, 3];

Console.WriteLine("Enter Arrival time of each process: ");
arrival = Array.ConvertAll(Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries), Double.Parse);

Console.WriteLine("Enter Burst time of each process: ");
burst = Array.ConvertAll(Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries), Double.Parse);  

// 单层循环赋值即可
for (int i = 0; i < processCount; i++)
{
    mat[i, 0] = i + 1; // 进程编号默认从1开始,需要从0开始的话直接赋值i即可
    mat[i, 1] = arrival[i];
    mat[i, 2] = burst[i];
}

代码说明

  • 把原冲突变量process重命名为processCount避免语义混淆
  • 根据输入的进程数动态创建对应长度的arrival、burst和二维数组mat,避免内存浪费和越界问题
  • 去掉冗余的内层循环,仅用一层循环就完成所有行的赋值,符合你需要的{{process,arrival,burst}, ...}结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:45:07