# Diagonalen in 2D Array addieren



## unrockstar (22. Nov 2010)

Hallo,
ich hab ein kleines Problem. 
die aufgabe an sich ist eigentlich ganz einfach aber ich stehe irgendwie auf dem schlauch und weiß nicht wie ich anfangen soll.
die aufgabe heißt:
ich habe ein array int [][] mat.
mat=(1 0 3)
       (14 3 12)
       (2 22 2)
nun soll ich die hauptdiagonale und die nebendianale zusammerechnen was wie folgt aussehene würde:
1+3+2=6 hauptdiagonale 
3+3+2=8 nebendiagonale

mein vorschlag wäre nun mit einer verschachtelten for schleife zu arbeiten.
was ich aber nicht hinbekomme ist die indexzahlen des arrays so umzuschreiben das sie allgemein sind und auch für ein array für die größe 5x5 gelten würde
könntet ihr mir da bissl auf die sprünge helfen?


----------



## SlaterB (22. Nov 2010)

wie lang muss denn die Schleife laufen? doch bis array.length, als 3 bei 3er-Array, 5 bei 5er-Array,
war das schon die erste Schwierigkeit?
dann hast du eine Schleife mit Laufindex i, addiere Feld Nummer i drauf oder (i+1) oder was auch immer

irgenwas schon probiert, Testcode dass du dir Mühe gibts?


----------



## Der Müde Joe (22. Nov 2010)

>könntet ihr mir da bissl auf die sprünge helfen? 

2x2 Array: Diagonale: 0,0 1,1 
3x3 Array: Diagonale: 0,0 1,1 2,2
4x4 Array: Diagonale: 0,0 1,1 2,2 3,3
Da ist ein Muster darin
2x2 Array: Diagonale: 0,1 1,0 
3x3 Array: Diagonale: 0,2 1,1 2,0
4x4 Array: Diagonale: 0,3 1,2 2,1 3,0
Da ist ein Muster darin


----------



## JohannisderKaeufer (22. Nov 2010)

Kleiner Tipp

Hauptdiagonale = mat[0][0]+ mat[1][1]+mat[2][2]

Nebendiagonale = mat[0][2]+mat[1][1]+mat[2][0]

Die Nebendiagonale ist auch

```
int letzterIndex = mat.length-1
mat[0][letzterIndex-0]+mat[1][letzterIndex-1]+mat[2][letzterIndex-2]
```


----------



## unrockstar (22. Nov 2010)

mit den schleifen an sich hab ich keine probleme nur halt wie ich auf die indexe komme

aber der tipp ist sehr hilfreich danke 
ich werds mal probieren und dann hier meine lösung posten


----------

