mein Code wurde angenommen, die Eingabe vom Benutzer für Zeilen und Spalten erhalten und haben sie die Werte für das Array eingeben und dann durch das Array, um den größten Wert zu finden und dann zeigen Sie die Position der höchstes Element, ich bin nur nicht sicher, wo ich falsch gelaufen bin.Fehler beim Lokalisieren des Elements im Array
Antwort
Der Fehler auftritt, wenn Sie den if-Block in Position getroffen() und wird von Ihrem Zählvariable verursacht.
i
beginnt bei 1, anstatt der erste Index eines Java-Arrays, 0 - also, wenn jedes Mal, wenn die innere Schleife ausgeführt wird inkrementiert, geht es vom Ende des Arrays, wenn es auf dem letzten Element ist.
dass Java merken ist nullter indexiert, was bedeutet, dass ein Array der Größe n bei und das letzte Element in n-1 sein erstes Element aufweist. Also, wenn Ihr Array 5 Elemente hat, wird Array [5] einen Fehler verursachen, da dies das sechste (und nicht existierende) Element im Array ist.
Es stürzt jedoch immer noch nach dieser Änderung ab. Dies liegt daran, dass i
niemals in der äußeren Schleife zurückgesetzt wird. Angenommen, Sie gehen durch ein 2x2-Array - i
beginnt bei 0 und wird dann zweimal erhöht, wenn die erste Zeile durchlaufen wird. i
ist jetzt 2, aber die äußere Schleife läuft wieder! Das Programm versucht auf [1] [2] zuzugreifen, was fehlschlägt.
Sie haben mehrere andere Probleme außerhalb dieser Funktion. An diesem Punkt gibt location()
erfolgreich den größten Wert im 2D-Array zurück. Sie versuchen dann, die indexOf()
Methode zu verwenden, um den Index der Nummer in dem ursprünglichen Array zu finden. Wenn Sie jedoch eine Liste aus dem 2D-Array erstellen, erhalten Sie eine Liste von 1D-Arrays. Der Versuch, den Index einer Zahl in einer Liste von Arrays zu finden, macht keinen Sinn - und daher gibt indexOf()
-1 zurück.
Es ist wie fragen, was der Index von 5 in einem Array von Strings ist. Völlig verschiedene Datentypen.
(Auch im Doppel einen Index zu speichern ist eine schlechte Praxis, da es nicht wirklich Sinn macht, einen nicht-ganzzahligen Indexwert zu haben)
Wenn Sie nur die Position des größten Posten finden möchten Im Array würde ich vorschlagen, location()
ein 1D-Array mit zwei Elementen zurückgeben: die Zeile und die Spalte. Sie können die Werte von Zeile und Spalte speichern, wenn Sie ein neues, größtes Element finden. Es sollte daher einfach sein, sie nach Abschluss des Vorgangs zurückzugeben.
Viel Glück!
Vielen Dank, das hat sehr geholfen. –
Kein Problem! Achten Sie darauf, es als die Antwort zu markieren, wenn Sie denken, dass alles gelöst ist (: – etherealflux
- 1. Lokalisieren Koordinaten des Elements in 2D Array
- 2. java - Erhalte Index des Elements im Array [Fehler]
- 3. Return-Index des kleinsten Elements im Array
- 4. Position des minimalen Elements im Array finden
- 5. Return NaN beim Hinzufügen des Elements des Array
- 6. Fehler beim Initialisieren des Werts im Array dynamisch
- 7. jQuery: Index des Elements im Array, wo Prädikat
- 8. Python: finde die Position des Elements im Array
- 9. zum Entfernen des ersten und letzten Elements im Array
- 10. Ein Array lokalisieren
- 11. Timestamped Event Matching Error: Fehler beim Suchen des passenden Elements
- 12. Android Support Library v7: Fehler beim Abrufen des übergeordneten Elements
- 13. Fehler beim Vergleich zweier Elemente im Array
- 14. Fehler im Midlet beim Implementieren des Befehls
- 15. Rubin: Höchster Index des Elements in Array
- 16. HAML Index des Array-Elements jeder Schleife
- 17. Get Index des Elements in Array
- 18. javascript: Variablen im Block lokalisieren
- 19. Ermitteln des Schlüssels des einzigen Elements in einem PHP-Array
- 20. Größe des ziehbaren Elements beim Start des Ziehens ändern
- 21. BinarySearch - Fehler beim Vergleich zweier Elemente im Array
- 22. Fehler beim Ändern der Größe von Daten im Array "numpy"
- 23. MongoDb Filter auf Wert des letzten Elements in einem Array
- 24. Fehler beim Ausführen des Kalenderprojekts
- 25. Objekt.respond_to? Fehler beim Abrufen des Methodennamensymbols aus Array
- 26. R endliche Werte im Datensatz lokalisieren
- 27. Schwerwiegender Fehler: Index außerhalb des Bereichs (lldb) beim Entfernen vom Index im Array swift
- 28. Einstellen des ausgewählten Werts eines Select-Elements im Lenker
- 29. Deklaration des Elements
- 30. Fehler beim Laden des Bildes
Was ist das Problem, das Sie haben? – elhefe
1) Haben Sie versucht, einen Debugger für diesen Code zu verwenden? 2) Wenn Sie möchten, dass wir helfen, müssen Sie uns einige Hinweise geben; z.B. Warum denkst du, dass etwas falsch ist, irgendwelche Fehlermeldungen/Stacktraces und so weiter. –
'if (a [Zeile] [col] Tdorno