2016-09-12 17 views
0

2行3列の行列として2つの値を入力しようとしていますが、文字列は正しい形式ではありません。助言がありますか?2行3列の行列に2つの値を入力

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

Splitあなたがしようとしたとしてint解析と互換性がありませんstringの配列を返します。それを事前に保存し、後でそれをアクセスしてみてください、そのような(後で使用valuesに入力された値は、):

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

あなたの場合:

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

あなたが代わりのように、線で数字の行を取得することができますあなたもその1、その意志入力列、行ごとたいかもしれませんマトリックスとして入力、それをしたい:

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 
*/ 
+0

私はこれをやっていると思っていた –

0

string.Split文字列O配列を返し、int.Parseはあなたが例外を参照してください理由である、文字列の配列を受け入れません。

あなたは以下のものが必要ですが、非int型の入力に注意して例外が発生する可能性があります。

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

用途: int.Parse(。Console.ReadLine()スプリット(」「)) ;

関連する問題