Min Max Array < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 16:06 Fr 15.04.2011 | Autor: | Marius6d |
Aufgabe | Erstelle ein Array welches mit Zufallszahlen gefüllt wird, und gebe die minimalen und maximalen Werte aus. |
Also eigentlich einfach, im Internet gibt es ja auch 100te Seiten dazu. Also ich habe folgendes programmiert und es funktioniert eigentlich auch bestens:
public class Aufgabe1c {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[ ] ganzezahlen = new int[10]; //Array mit 10 Fächern
for (int i=0; i<10; i++){ //for schleife für i von 0 bis 10
double d=Math.random(); //Zufallsgenerator für Zahlen zwischen 1 und 20
d=d*19+1;
int f=(int)d;
ganzezahlen[i] = f; // Array wird für die i-ten Schubladen mit f gefüllt.
int max;
int min;
max = ganzezahlen[0];
min = ganzezahlen[0];
for ( int index = 0; index < ganzezahlen.length; index++ )
{
if ( ganzezahlen[ index ] > max ) // das gegenwärtige Element untersuchen
max = ganzezahlen[ index ]; // wenn es bis dahin das Größte ist, max ändern
if ( ganzezahlen[ index ] < min ) // das gegenwärtige Element untersuchen
min = ganzezahlen[ index ]; // wenn es bis dahin das kleinste ist, min ändern
}
System.out.println("Die grösste Zahl im Array ist " + max + " und die kleinste Zahl im Array ist " + min);
}
}
}
Das Problem ist nun, dass bei der Ausgabe folgende Form Auftritt:
Die grösste Zahl im Array ist 17 und die kleinste Zahl im Array ist 0
Die grösste Zahl im Array ist 17 und die kleinste Zahl im Array ist 0
Die grösste Zahl im Array ist 17 und die kleinste Zahl im Array ist 0
Die grösste Zahl im Array ist 19 und die kleinste Zahl im Array ist 0
Die grösste Zahl im Array ist 19 und die kleinste Zahl im Array ist 0
Die grösste Zahl im Array ist 19 und die kleinste Zahl im Array ist 0
Die grösste Zahl im Array ist 19 und die kleinste Zahl im Array ist 0
Die grösste Zahl im Array ist 19 und die kleinste Zahl im Array ist 0
Die grösste Zahl im Array ist 19 und die kleinste Zahl im Array ist 0
Die grösste Zahl im Array ist 19 und die kleinste Zahl im Array ist 1
Es gibt also sozusagen die ganze for schleife zurück, ich möchte aber dass ja schlussendlich nur die letzte Zeilen mit den min max Werten ausgegeben wird! Was habe ich falsch gemacht?
|
|
|
|
Hallo Marius6d,
> Erstelle ein Array welches mit Zufallszahlen gefüllt wird,
> und gebe die minimalen und maximalen Werte aus.
> Also eigentlich einfach, im Internet gibt es ja auch 100te
> Seiten dazu. Also ich habe folgendes programmiert und es
> funktioniert eigentlich auch bestens:
>
> public class Aufgabe1c {
>
> /**
> * @param args
> */
> public static void main(String[] args) {
> // TODO Auto-generated method stub
>
> int[ ] ganzezahlen = new int[10]; //Array mit 10
> Fächern
>
> for (int i=0; i<10; i++){ //for schleife für i von 0 bis
> 10
> double d=Math.random(); //Zufallsgenerator für Zahlen
> zwischen 1 und 20
> d=d*19+1;
> int f=(int)d;
> ganzezahlen = f; // Array wird für die i-ten
> Schubladen mit f gefüllt.
>
> int max;
> int min;
>
> max = ganzezahlen[0];
> min = ganzezahlen[0];
>
> for ( int index = 0; index < ganzezahlen.length; index++
> )
> {
> if ( ganzezahlen[ index ] > max ) // das gegenwärtige
> Element untersuchen
> max = ganzezahlen[ index ]; // wenn es bis dahin
> das Größte ist, max ändern
> if ( ganzezahlen[ index ] < min ) // das gegenwärtige
> Element untersuchen
> min = ganzezahlen[ index ]; // wenn es bis dahin
> das kleinste ist, min ändern
>
>
> }
>
>
>
> System.out.println("Die grösste Zahl im Array ist " +
> max + " und die kleinste Zahl im Array ist " + min);
>
>
>
>
>
> }
>
>
> }
>
> }
>
> Das Problem ist nun, dass bei der Ausgabe folgende Form
> Auftritt:
>
> Die grösste Zahl im Array ist 17 und die kleinste Zahl im
> Array ist 0
> Die grösste Zahl im Array ist 17 und die kleinste Zahl im
> Array ist 0
> Die grösste Zahl im Array ist 17 und die kleinste Zahl im
> Array ist 0
> Die grösste Zahl im Array ist 19 und die kleinste Zahl im
> Array ist 0
> Die grösste Zahl im Array ist 19 und die kleinste Zahl im
> Array ist 0
> Die grösste Zahl im Array ist 19 und die kleinste Zahl im
> Array ist 0
> Die grösste Zahl im Array ist 19 und die kleinste Zahl im
> Array ist 0
> Die grösste Zahl im Array ist 19 und die kleinste Zahl im
> Array ist 0
> Die grösste Zahl im Array ist 19 und die kleinste Zahl im
> Array ist 0
> Die grösste Zahl im Array ist 19 und die kleinste Zahl im
> Array ist 1
>
> Es gibt also sozusagen die ganze for schleife zurück, ich
> möchte aber dass ja schlussendlich nur die letzte Zeilen
> mit den min max Werten ausgegeben wird! Was habe ich falsch
> gemacht?
Am Schluss hast Du eine geschlossene geschweifte Klammer zuviel,
daher wird bei jeder Erzeugung einer Zufallszahl das Minimum und
Maximum bestimmt.
Dies ist sicher nicht so gewollt, setze daher die überzählige
geschlossene geschweifte Klammer ans Ende der 1. Schleife
und vor Beginn der 2. Schleife.
Gruss
MathePower
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:46 So 17.04.2011 | Autor: | Marius6d |
Ah vielen Dank für die Antwort!
|
|
|
|