Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich möchte die 2 grösten werte eines arrays auslesen:
Code:
public static void main(String[] args)
{
int[] array = {3, 1, 5, 7, 4, 12, -3, 8, -2};
int max,ngroese;
max = array[0];
ngroese = array[0];
for ( int index=0 ; index < array.length ; index++)
{
if(max<array[ index ]&& max > ngroese)
{
ngroese = array[ index ];
}
if ( array[ index ] > max )
{
max = array[ index ];
}
}
System.out.println( "Das Maximum dieses Arrays ist: " + max );
System.out.println( "Das nächste Maximum dieses Arrays weare: " + ngroese );
}
eigentlich müsste doch ngroese der nächste gröster wert sein, da ich nur dann was reinschreibe, wenn der array kleiner als der gröste wert ist und größer als der aktuelle wert.
ich hätte gern keine lösung, sonder nur ein gedanken schubser .
Guck dir nochmal genau die erste if-Abfrage an: Was macht die? Brauchst du die?
Was bei der zweiten steht, ist erstmal richtig, aber da fehlt dann ja noch was: Was muss mit ngroesse passieren, wenn max einen neuen Wert bekommt? Richtig, es kriegt den vorherigen von max!
erstmal danke für die schnelle antwort!
ok aber wie realisier ich das? das müsste ja so klingen:
Code:
public static void main(String[] args)
{
int[] array = {3, 1, 5, 7, 4, 12, -3, 8, -2};
int max,ngroese;
max = array[0];
ngroese = array[0];
for ( int index=0 ; index < array.length ; index++)
{
if ( array[ index ] > max )
{
ngroese = max;
max = array[ index ];
}
}
System.out.println( "Das Maximum dieses Arrays ist: " + max );
System.out.println( "Das nächste Maximum dieses Arrays weare: " + ngroese );
}
aber ich zähle ja nur bis zur 12. die 8 bekommt er garnicht in max rein :?
int[] array = {3, 1, 5, 7, 4, 12, -3, 8, -2};
int max,ngroese;
max = array[0];
ngroese = array[0];
for ( int index=0 ; index < array.length ; index++)
{
if ( array[ index ] > ngroese)
{
ngroese = array[ index ];
}
if ( array[ index ] > max )
{
ngroese = max;
max = array[ index ];
}
}
System.out.println( "Das Maximum dieses Arrays ist: " + max );
System.out.println( "Das nächste Maximum dieses Arrays weare: " + ngroese );
}
ich prüfe einfach nochmal ob er wirklich alle durch gelaufen ist!
Das erinnert mich an eine Aufgabe in einer Klausur, die ich mal im Studium hatte. Da sollten irgendwelche Daten
auf dem MS-SQL-Server hin und her geschaufelt werden. Der MS-SQL-Server hatte eine Stored Procedure dafür,
dann habe ich in der Klausur einfach diesen Einzeiler hingeschrieben. Danach gab es etwas Streit, ob die Lösung
korrekt bzw. so gelten kann. Der Prof. wusste, dass ich auch die Lösung auf die "harte Tour" fehlerfrei machen
würde, hat dann letztendlich gelacht, dass ich ihn so ausmanövriert habe. Die Typen vom Folgejahr hatten dann
einen Hinweis in der Klausur, dass bestehende Prozeduren nicht verwendet werden dürfen. :lol: