Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Mehrdimensionales array[][] (http://www.informatikerboard.de/board/thread.php?threadid=2175)


Geschrieben von unleashed656 am 18.03.2015 um 16:42:

  Mehrdimensionales array[][]

Hallo, ich habe erneut ein kleines Problem und hoffe ich bin
da wieder bei euch richtig.
Ich habe ein mehrdimensionales array (int[][])
Ich muss daraus nun das spalten und zeilenprodukt bilden. Also alle zahlen in einer Spale
aufmultiplizieren plus das gleicche mit der nächsten spalte und so weiter. Und dann halt alle zahlen in einer zeile multiplizieren + die nächste spalte.


Ich kriege aber immer total falsche Ergebnisse.
Ich habe mich mal zuerst am spaltenprodukt probiert und das zeilenprodukt weggelassen.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
package sonstiges;

public class summe {

	static int Matrix[][]= {{2,1,1,3},{1,3,2,4},{4,3,1,3}};
	
	
	
	static int produkt(int[][] matrix){
		int spaltenprodukt = 1;
		int ergebniss = 0;
		
		for(int i=0;i<matrix.length;i++){
			
			for(int j=0;j<matrix[i].length;j++){
				spaltenprodukt *= matrix[i][j];
			}
			
			ergebniss +=spaltenprodukt;
		}
			
		return ergebniss;
	}
	
public static void main(String[] args){
	
	int zahl=produkt(Matrix);
	System.out.print(zahl);
}	
	
}


Bitte helft mir weiter...Das spaltenprodukt sollte 66 ergeben.



Geschrieben von eulerscheZahl am 18.03.2015 um 16:47:

 

Zieh die Zeile int spaltenprodukt = 1; in die äußere for Schleife rein (also zu Zeile 14). Sonst rechnest du mit dem alten Produkt weiter. Alternativ kannst du es wieder auf 1 setzen, nachdem du das Ergebnis erhöht hast.



Geschrieben von unleashed656 am 18.03.2015 um 16:51:

 

ah danke, das macht mehr sinn großes Grinsen ...dann werde ich mal die zeilen in angriff nehmen Augenzwinkern



Geschrieben von unleashed656 am 19.03.2015 um 13:59:

 

ok irgendwie kriege ich immer eine indexoutofbounds exceptions bei den zeilenprodukt.
Hier der Code:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:

public class summe {

	static int Matrix[][]= {{2,1,1,3},{1,3,2,4},{4,3,1,3}};
	
	
	
	static int produkt(int[][] matrix){
		
		int ergebniss = 0;
		
		//Spaltenprodukt
		for(int i=0;i<matrix.length;i++){
			int spaltenprodukt = 1;
			
			for(int j=0;j<matrix[i].length;j++){
				spaltenprodukt *= matrix[i][j];
			}
			
			ergebniss +=spaltenprodukt;
		}
		
		//Zeilenprodukt
		for(int i = 0;i<matrix.length;i++){
			int zeilenprodukt = 1;			
			for(int j=0;j<matrix[i].length;j++){
				zeilenprodukt *= matrix[j][i];
			}
			ergebniss += zeilenprodukt;
		}
			
		return ergebniss;
	}
	
public static void main(String[] args){
	
	int zahl=produkt(Matrix);
	System.out.print(zahl);
}	
	
}



Geschrieben von eulerscheZahl am 19.03.2015 um 16:19:

 

code:
1:
2:
3:
4:
5:
6:
7:
for (int i = 0; i < matrix[0].length; i++) {
	int spaltenprodukt = 1;
	for (int j = 0; j < matrix.length; j++) {
		spaltenprodukt *= matrix[j][i];
	}
	ergebnis += spaltenprodukt;
}


Beachte, dass die erste Schleife bis matrix[0].length geht.


Forensoftware: Burning Board, entwickelt von WoltLab GmbH