ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
221
221
EMPFEHLEN
-
Hallo,
ich habe ein 2D Array erstellt welches komplett mit Nullen gefüllt ist, bis auf einige Stellen, welche 1en beinhalten. Nun möchte ich von hinten dieses 2D Array nach eben dieser Zahl durchsuchen und als Rückgabewert den Spaltenindex erhalten in dem die 1 das erste mal auftaucht.
Mein Code lautet wie folgt:
for(int k=19; k>0; k--){
for(int l=2; l>0; l--){
if(tabelle[l][k] == 1){
vorhanden = k;
break;
}
}
}
Wie ihr euch denken könnt, wende ich mich hier ans Forum, weil das nciht funktioniert
Habt ihr Ideen woran das liegt?
Beste Grüße
-
03.08.11 21:24 #2
- Registriert seit
- Jun 2009
- Beiträge
- 870
Hi und willkommen hier im Forum
Den Code bitte in die Code- oder Java-Tags (siehe meine Signatur), das erhöht die Lesbarkeit.
Schreib das ganze doch in eine Methode, z.B. so:
Code java:1 2 3 4 5 6 7 8 9 10
private static int getColumnWithContent(int[][] tabelle) { for (int k = tabelle.length - 1; k >= 0; k--) { for (int l = tabelle[k].length - 1; l >= 0; l--) { if (tabelle[l][k] == 1) { return k; } } } return -1; }
Das Problem war vermutlich, weil du in deinen for-Schleifen nur bis 1 (k und l > 0) herunter gezählt hast, so wird jeweils die erste Zeile und die erste Spalte ignoriert.Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
03.08.11 21:49 #3SE Tutorials.de Gastzugang
Der Fehler wird darin gelegen haben das er aus der inneren for() zwar BREAK; aufgerufen hat, diese aber die äußere for() nicht mitbekommt da BREAK; soweit ich weis nur die aktuelle Ebene abbricht, nicht aber eventuelle übergeordnete.
-
Danke für die schnelle Antwort. Das mit den Code Tags werde ich beachten.
Irgendwie funktioniert die Sache immer noch nicht, wobei es dann wohl woanders liegen muss. Könnte es ein Problem sein, dass ich diese Suche wiederum im Rahmen einer for Schleife ausführe?
So langsam gehen mir die Ideen aus...
-
Danke für diesen Hinweis Spike, ich habe einfach eine zweite If Bedingung eingebaut, welche dann wiederum einen break durchführt. Nun geht es. Sicher nicht die schönste Variante, aber das passt erstmal.
-
03.08.11 23:06 #6SE Tutorials.de Gastzugang
Was ich noch anmerken möchte ist das hier ein großer Fehler vorliegt
Deinem Code nach läuft die äußere for() mit dem int k.
Die innere aber mit dem int l.
Allerdings rufst du das aktuelle Element mit [l][k] ab ... also genau falschherum.
Diesen Fehler hat genodeftest leider kopiert.
Natürlich kann es nicht funktionieren wenn du die Länge der ersten Dimension für das Objekt der 2ten Dimension verwendest und umgekehrt.
@genode
Das müsste du doch eigentlich gemerkt haben wenn du die innere for() mit array[k] initialisiest und dann auf array[l][k] zugreifst ...
Typischer TYPO =D
-
04.08.11 00:37 #7
- Registriert seit
- Jun 2009
- Beiträge
- 870
@SPiKEe: stimmt, hab ich übersehen und mitkopiert...
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
Ähnliche Themen
-
[JS] Array spaltenweise durchsuchen und Selectbox füllen?
Von _opiWahn_ im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 28.02.11, 12:09 -
Array spaltenweise durchsuchen
Von ania im Forum C/C++Antworten: 17Letzter Beitrag: 15.07.10, 08:57 -
Array hängt Ergebnisse einfach immer hinten an.
Von xtramen01 im Forum PHPAntworten: 0Letzter Beitrag: 17.05.09, 11:05 -
explode von hinten auslesen
Von Aser im Forum PHPAntworten: 4Letzter Beitrag: 31.08.06, 17:09 -
Array "j" von hinten anfangen lassen ... array reverse geht nicht
Von -GS-Master im Forum PHPAntworten: 3Letzter Beitrag: 01.08.06, 10:45





Zitieren
Login





