将两个值输入到2乘3矩阵中

时间:2016-09-12 12:14:38

标签: c# arrays

我试图输入两个值作为2 x 3矩阵,但不断收到错误&#39;字符串的格式不正确&#39;,此代码适用于其他问题,但现在没有,任何建议?< / p>

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

3 个答案:

答案 0 :(得分:0)

string.Split返回数组o字符串,而int.Parse不接受字符串数组,这就是您看到异常的原因。

您只需要在下面,但要注意非int输入可能会导致异常。

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

答案 1 :(得分:0)

Split返回string的数组,这与您尝试进行的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
*/

答案 2 :(得分:0)

使用: int.Parse(Console.ReadLine()。Split(&#39;&#39;));