2017-05-06 7 views
-1

私は二次元配列を持っています。私の目的はすべての数字の合計とすべての数字の合計を斜めに見つけることです。二次元入力は最初の行のみを許可します

BufferedReader kb = new BufferedReader(new InputStreamReader(System.in)); 
int [][] a=new int [5][5]; 
int same=0; 
int sum=0; 
System.out.println("Please enter your numbers"); 
for(int r=0;r<5;r++) 
for(int c=0;r<5;r++) 
a[r][c]=Integer.parseInt(kb.readLine()); 
for(int r=0;r<5;r++) 
for(int c=0;r<5;r++) 
sum=sum+a[r][c]; 
for(int r=0;r<5;r++) 
for(int c=0;r<5;r++) 
if (r==c) 
{same=same+a[r][c];} 

System.out.println("The sum of the diaganols is "+same+" The sum of everything is "+sum); 

私は二次元配列を開いていますが、プログラムを開始すると、最初の行に対応する5つの数字しか入力できません。

私はプログラミングに本当に新しい、愚かな間違いのために私を許してください、私は、おかげで!

答えて

0

これは、入力を取るためにforループで同じ変数を使用しているからです。

for(int r=0;r<5;r++) 
//for r = 0 
for(int c=0;r<5;r++) 
//r 0 to 5 (take 5 input) 

出口に条件が(R < 5)の両方に対して同じであるように、ここで、Rは、両方のループの出口に内部ループ5に到達します。あなたは以下のようにするべきです: -

for (int i = 0; i < 5 ; i++){ 
for (int j = 0; j < 5 ; j++){ 
    a[i][j] = //read input 
} 
} 
関連する問題