Index von Array ausgeben

S

shrekii

Hallo Leute

Die Aufgabe ist es den maximalen Wert des Arrays auszugeben mit dem dazu gehörenden Index.
Das mit dem Maximalwert klappt aber beim Index ausgeben komm ich nicht recht weiter.
Weiß jemand Hilfe?
Code:
class Max
{

  public static void main ( String[] args )
  {

    int[] values =  {12, 9, 13, 27, 58, 33, 25, 14, 40, 70, 89, 73} ;
    int  max;
   

    // das gegenwärtige Maximum initialisieren
    max = values[0];

    // das Array durchsuchen
    for ( int i = 0; i < values.length; i++ )
    {
      if ( values[i] > max )  // das gegenwärtige Element untersuchen
     
        max =values[i];      // wenn es bis dahin das Größte ist, max ändern
        
    }
    
    
    System.out.println("Das Maximum dieses Arrays ist: " +max+ "  mit dem Index" );
  
}
}
 
Hallo,

Du hast's doch im Grunde schon gelöst..

Musst nur noch einen zweiten Integer-Wert (namens "index" zb einbaun und den in der for-schleife neu setzen.

Im Code sieht das dann so aus (übrigens, benutze bitte die Code-Tags):
Java:
class Max
{

public static void main ( String[] args )
{

int[] values = {12, 9, 13, 27, 58, 33, 25, 14, 40, 70, 89, 73} ;
int max;
int index; //<<--- Hier


// das gegenwärtige Maximum initialisieren
index = 0; //<<--- hier
max = values[index];

// das Array durchsuchen
for ( int i = 0; i < values.length; i++ )
{
if ( values[i] > max ) // das gegenwärtige Element untersuchen

max =values[i]; // wenn es bis dahin das Größte ist, max ändern
index = i; //Index neu setzen <<--- und hier

}


System.out.println("Das Maximum dieses Arrays ist: " +max+ " mit dem Index " + index );

}
}

Gruß,
Martin
 
Ja, ungefähr soweit war ich auch schon.
Beim Kompilieren meldet er keinen Fehler aber beim Ausführen.
 
Was mir nur auffällt: Beachte die Klammern des if-Anweisungsblocks!

Java:
class Max
{
 
public static void main ( String[] args )
{
 
int[] values = {12, 9, 13, 27, 58, 33, 25, 14, 40, 70, 89, 73} ;
int max;
int index; //<<--- Hier
 
 
// das gegenwärtige Maximum initialisieren
index = 0; //<<--- hier
max = values[index];
 
// das Array durchsuchen
for ( int i = 0; i < values.length; i++ )
{
if ( values[i] > max ) {// das gegenwärtige Element untersuchen
 
max =values[i]; // wenn es bis dahin das Größte ist, max ändern
index = i; //Index neu setzen <<--- und hier
}
 
}
 
 
System.out.println("Das Maximum dieses Arrays ist: " +max+ " mit dem Index " + index );
 
}
}
 
Oh sorry, darauf hab ich vorher nicht geachtet.. Sollte auch eher n Denkanstoß darstellen

Naja, jetzt ist's ja gelöst, danke für die Berichtigung.
 
Zurück