2017-05-06 4 views
-1

Ich habe ein doppeltes Maßfeld und mein Ziel ist, die Summe aller Zahlen und die Summe aller Zahlen diagonal zu finden.doppelter Dimensionseingang erlaubt nur erste Reihe

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

Ich habe eine doppelte Dimension Array geöffnet, aber wenn ich das Programm starten kann ich nur Eingang 5 Zahlen, die zu der ersten Reihe entsprechen.

Ich bin wirklich neu in der Programmierung, bitte vergib mir für irgendwelche dumme Fehler, die ich mich bemehme, danke!

Antwort

0

Das ist, weil Sie die gleiche Variable in for Schleife für die Eingabe verwenden.

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

hier R 5 erreicht in der inneren Schleife so sowohl der Schleifenausgang als Bedingung für beide gleich ist zu beenden (r < 5). Sie sollten etwas wie unten tun -:

for (int i = 0; i < 5 ; i++){ 
for (int j = 0; j < 5 ; j++){ 
    a[i][j] = //read input 
} 
}