二维输入只允许第一行

二维输入只允许第一行

问题描述:

我有一个二维数组,我的目标是找到所有数字的总和和所有数字的对角线的总和。二维输入只允许第一行

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号,其对应于第一行。

我真的很新的编程,请原谅我任何愚蠢的错误,我meake,谢谢!

那是因为你在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 
} 
}