tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
584
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    MinaM MinaM ist offline Mitglied Bronze
    Registriert seit
    Jun 2005
    Beiträge
    49
    Hallo,
    ich möchte aus einem Array mit 10 Elementen das Element mit dem größten
    Wert ausgeben.
    Mein Algorithmus funktionier aber nicht.
    Weiß jemand warum?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
     
        public static void main(String[] args) {
            
            int[] sucheMax = {1,8,4,5,6,14,4,2,1,12};
            
            int maximum = 0;
            int i;
            for(i=0; i<=sucheMax.length-1;i++)
            {
                if(sucheMax[i]> sucheMax[maximum])
                {
                    maximum = sucheMax[i];
                }
                
            }
            System.out.println("Die größte Zahl ist "+maximum);
            
        }

    Ich bekomme immer eine ArrayOutOfBoundException.

    lg Mina
     

  2. #2
    kabel2 kabel2 ist offline Mitglied Gold
    Registriert seit
    Aug 2005
    Beiträge
    138
    Code :
    1
    2
    3
    4
    5
    6
    
            int[] sucheMax = {1,8,4,5,6,14,4,2,1,12};
     // more stuff
                if(sucheMax[i]> sucheMax[maximum])
                {
                    maximum = sucheMax[i];
                }
    das muss heißen maximum= i;

    maximum enthaelt bei dir den Index in das Array sucheMax. Mit der Zuweisung hast du allerdings den bisher maximalen Wert als neuen Index benutzt. Das ist aber falsch.

    HTH
     

  3. #3
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.885
    Blog-Einträge
    29
    Hallo!

    ich würde das einfach so abändern:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            int[] sucheMax = { 1, 8, 4, 5, 6, 14, 4, 2, 1, 12 };
            int maximum = 0;
            for (int i = 0, current = 0; i < sucheMax.length; current=sucheMax[i++]) {
                if (current > maximum) {
                    maximum = current;
                }
            }
            System.out.println("Die größte Zahl ist " + maximum);
        }

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  4. #4
    kabel2 kabel2 ist offline Mitglied Gold
    Registriert seit
    Aug 2005
    Beiträge
    138
    Bitte den Thread Richtung Unterforum "Algorithmen und Datenstrukturen mit Java" verschieben. (Ist das eine Meldung wert?)
     

  5. #5
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Zitat Zitat von Thomas Darimont
    Hallo!

    ich würde das einfach so abändern:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            int[] sucheMax = { 1, 8, 4, 5, 6, 14, 4, 2, 1, 12 };
            int maximum = 0;
            for (int i = 0, current = 0; i < sucheMax.length; current=sucheMax[i++]) {
                if (current > maximum) {
                    maximum = current;
                }
            }
            System.out.println("Die größte Zahl ist " + maximum);
        }

    Gruß Tom
    es sollte angesichst des Wertebereichs glaube auch für negative Zahlen gehen, also entweder in deinem
    Code maximum mit sucheMax[0] oder Integer.MIN_VALUE initialisieren oder kabel2's Variante

    Gruß

    RedWing
     
    "I'm not deaf, I'm ignoring you"
    ----

  6. #6
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.885
    Blog-Einträge
    29
    Hallo!

    jo, da hast du recht:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
        /**
             * @param args
             */
            public static void main(String[] args) {
                int[] sucheMax = { 1, 8, 4, 5, 6, 14, 4, 2, 1, 12 };
                int maximum = Integer.MIN_VALUE;
            for (int i = 0, current = Integer.MIN_VALUE; i < sucheMax.length; current=sucheMax[i++]) {
                    if (current > maximum) {
                        maximum = current;
                    }
                }
                System.out.println("Die größte Zahl ist " + maximum);
     
     //Das minimum gäbs dann dementsprechend über:
     int minimum = Integer.MAX_VALUE;
            for (int i = 0, current = Integer.MAX_VALUE; i < sucheMax.length; current = sucheMax[i++]) {
                if (current < minimum) {
                    minimum = current;
                }
            }
            System.out.println("Die kleinste Zahl ist " + minimum);
     
            }


    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  7. #7
    MinaM MinaM ist offline Mitglied Bronze
    Registriert seit
    Jun 2005
    Beiträge
    49
    Danke für eure Antworten!
    Inzwischen funktioniert mein Algo.

    lg
    MinaMurray
     

Ähnliche Themen

  1. Popup funktoniert nicht
    Von alex130 im Forum Javascript & Ajax
    Antworten: 8
    Letzter Beitrag: 03.11.07, 15:13
  2. Cronjob funktoniert nicht
    Von alex130 im Forum Hosting & Webserver
    Antworten: 4
    Letzter Beitrag: 08.10.07, 15:45
  3. Mysql Update funktoniert nicht
    Von alex130 im Forum PHP
    Antworten: 14
    Letzter Beitrag: 03.06.07, 16:13
  4. 5.1 Sound funktoniert der Bass/Cener nicht
    Von SiNiE im Forum Microsoft Windows
    Antworten: 10
    Letzter Beitrag: 13.12.04, 20:05
  5. Suchalgorithmus (straight sort) nicht ganz
    Von mille im Forum Delphi, Kylix, Pascal
    Antworten: 0
    Letzter Beitrag: 13.01.04, 18:26