输入两个值到一个2 × 3矩阵中

本文关键字:两个 输入 一个 | 更新日期: 2023-09-27 18:06:42

我试图输入两个值作为一个2 × 3矩阵,但不断得到错误'字符串不是在正确的格式',这段代码已经为其他问题工作,但不是现在,有什么建议吗?

    int test = Convert.ToInt32(Console.ReadLine());
    int[,] nutjob = new int[2, 3];
    for(int i = 0; i < 3; i++ )
    {    
    for(int o = 0; o < 2; o++)
     {
       nutjob[o,i] = int.Parse(Console.ReadLine().Split());   
     }
    }

输入两个值到一个2 × 3矩阵中

Split返回string s数组,该数组与您试图做的int解析不兼容。尝试预先存储它并稍后访问它,就像这样(输入到values的值,稍后使用):

int test = Convert.ToInt32(Console.ReadLine());
int[,] nutjob = new int[2, 3];
string[] values = Console.ReadLine().Split();
for(int i = 0; i < 3; i++ )
{    
    for(int o = 0; o < 2; o++)
     {
         nutjob[o, i] = int.Parse(values[i * 2 + o]);   
     }
}

您可以选择逐行获取数字,如:

nutjob[o, i] = int.Parse(Console.ReadLine());

如果你想把它作为一个矩阵输入你可能还需要那个,它将输入列,一行一行:

int test = Convert.ToInt32(Console.ReadLine());
int[,] nutjob = new int[2, 3];
for(int i = 0; i < 3; i++ )
{    
    string[] values = Console.ReadLine().Split();
    for(int o = 0; o < 2; o++)
    {
        nutjob[o, i] = int.Parse(values[o]);   
    }
}
/* 
* Input like:
* 3 4
* 5 7
* 2 6
*/

string.Split返回一个字符串数组,而int.Parse不接受字符串数组,这就是为什么会看到一个异常。

你只需要下面,但要注意非整型输入可能会导致异常。

nutjob[o,i] = int.Parse(Console.ReadLine());  

使用说明:int.Parse (Console.ReadLine()。分割(' '));

相关文章: