按行读取矩阵元素

本文关键字:元素 读取 | 更新日期: 2023-09-27 18:16:57

我正在写一个矩阵的c#程序。当我从控制台输入矩阵输入时,每个元素都在单独的行中。但是,我想在一行中读取行元素。

这是我的代码

            Console.WriteLine("Enter the matrix");
            int n= Convert.ToInt32(Console.ReadLine());
            int[ , ] matrix=new int[n,n];
            for(int i=0; i<n; i++){
                for(int j=0; j<n; j++){
                    matrix[i,j]=Convert.ToInt32(Console.ReadLine());
                   // Console.Write("'t");
                }
            }

present I am getting like

1

2

3

4

但是,我想要像

1 24

3

帮助我。

按行读取矩阵元素

如果您想读取一行中的一行,您可以要求用户输入空格分隔的值,如1 2, 3 4,并读取如下

Console.WriteLine("Enter the matrix size");
int n = Convert.ToInt32(Console.ReadLine());
//add size and other validation if required
int[,] matrix = new int[n, n];
Console.WriteLine("Enter your values separated by space.");
for (int i = 0; i < n; i++)
{
    var values = (Console.ReadLine().Split(' '));
    for (int j = 0; j < n; j++)
    {
        matrix[i, j] = int.Parse(values[j]);
    }
}
//to write 
for (int i = 0; i < n; i++)
{
    for (int j = 0; j < n; j++)
    {
        Console.Write(matrix[i, j] + " ");
    }
    Console.WriteLine();
}

您可以输入整行并执行以下操作:

for(int i=0; i<n; i++){
    var input = Console.ReadLine().Split(' ').Select(t => int.Parse(t)).ToArray();
    for (int j = 0 ; j < n ; j++){
          matrix[i, j] = input[j];
    }
}
            Console.WriteLine("Enter the matrix");
            int n= Convert.ToInt32(Console.ReadLine());
            int[ , ] matrix=new int[n,n];
            for(int i=0; i<n; i++){
            string line = Console.ReadLine();
            string[] elements = line.Split(' ');
                for(int j=0; j<n || j < elements.Length; j++){
                    matrix[i,j]=Convert.ToInt32(elements[j]);
                }    
            }

请看同样的问题

在你的情况下:

for(int i = 0; i < n; i++){
      for(int j = 0; j < n; j + 2){
        string input = Console.ReadLine();
        string[] split = input.Split(' ');
        int firstNumber = Int32.Parse(split[0]);
        int secondNumber = Int32.Parse(split[1]);
        matrix[i,j] = firstNumber ;
        matrix[i,(j+1)] = secondNumber ;
       }
   }