按行方式读取矩阵元素

时间:2015-10-10 07:40:08

标签: c# matrix

我正在为矩阵编写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");
                }

            }

目前我变得喜欢

1

2

3

4

但是,我想要

1 2

3 4

帮助我。

4 个答案:

答案 0 :(得分:0)

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

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];

    }

}

答案 1 :(得分:0)

filename = 'num.txt';
delimiterIn = '\t';
text = importdata(filename,delimiterIn)
t=1:10;
plot(t,text);

答案 2 :(得分:0)

如果您想在一行中读取一行,可以要求用户输入空格分隔的值,例如1 23 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();
}

答案 3 :(得分:0)

请查看same question

在你的情况下:

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 ;
       }
   }