我试图输入两个值作为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());
}
}
答案 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;));