Hi,
die Klasse arraygames soll ein 100 Elemente umfassendes Array mit einer Folge von zufälligen ganzen Zahlen füllen. Desweiteren soll die größe und die kleinste Zahl in diesem Array mitsamt ihren Indizes ausgegeben werden.
Ich stoße dabei auf zwei Probleme.
Erstens sind die else-Zweige bei den beiden for-Schleifen nicht schön. Die Schleifen sollen das Array nach dem größten bzw. kleinsten Element durchsuchen und das Ergebnis in die Variablen max bzw. min schreiben. Wenn das gerade überprüfte Array-Element nicht größer (respektiv kleiner) ist als der bereits gespeicherte Wert, soll einfach die Variable unverändert bleiben (max = max z.B.) und der nächste Schleifendurchlauf erfolgen.
Zweitens gibt es ein Problem mit der Ausgabe der Indizes.
Die Gesamtausgabe schaut so aus:
Die Maxima und Minima stimmen, aber die Indizes offenbar nicht. Ich habe überlegt ob das vieleicht mit den unsauberen else-Zweigen zusammenhängen kann, habe da aber keine wirkliche Lösung gefunden.
Hat jemand eine Idee?
die Klasse arraygames soll ein 100 Elemente umfassendes Array mit einer Folge von zufälligen ganzen Zahlen füllen. Desweiteren soll die größe und die kleinste Zahl in diesem Array mitsamt ihren Indizes ausgegeben werden.
Ich stoße dabei auf zwei Probleme.
Erstens sind die else-Zweige bei den beiden for-Schleifen nicht schön. Die Schleifen sollen das Array nach dem größten bzw. kleinsten Element durchsuchen und das Ergebnis in die Variablen max bzw. min schreiben. Wenn das gerade überprüfte Array-Element nicht größer (respektiv kleiner) ist als der bereits gespeicherte Wert, soll einfach die Variable unverändert bleiben (max = max z.B.) und der nächste Schleifendurchlauf erfolgen.
Zweitens gibt es ein Problem mit der Ausgabe der Indizes.
Die Gesamtausgabe schaut so aus:
Das Maximum des Arrays ist 880 und hat den Index 10.
Das Minimum des Arrays ist 7 und hat den Index 0
Das Maximum des Arrays ist 944 und hat den Index 10.
Das Minimum des Arrays ist 112 und hat den Index 0
Das Maximum des Arrays ist 972 und hat den Index 10.
Das Minimum des Arrays ist 36 und hat den Index 0
Das Maximum des Arrays ist 639 und hat den Index 10.
Das Minimum des Arrays ist 64 und hat den Index 0
Das Maximum des Arrays ist 946 und hat den Index 10.
Das Minimum des Arrays ist 41 und hat den Index 0
Das Maximum des Arrays ist 803 und hat den Index 10.
Das Minimum des Arrays ist 65 und hat den Index 0
Das Maximum des Arrays ist 969 und hat den Index 10.
Das Minimum des Arrays ist 51 und hat den Index 0
Das Maximum des Arrays ist 884 und hat den Index 10.
Das Minimum des Arrays ist 62 und hat den Index 0
Das Maximum des Arrays ist 958 und hat den Index 10.
Das Minimum des Arrays ist 40 und hat den Index 0
Das Maximum des Arrays ist 921 und hat den Index 10.
Das Minimum des Arrays ist 118 und hat den Index 0
Das Maximum des Arrays ist 762 und hat den Index 10.
Das Minimum des Arrays ist 168 und hat den Index 0
Das Maximum des Arrays ist 868 und hat den Index 10.
Das Minimum des Arrays ist 19 und hat den Index 0
Die Maxima und Minima stimmen, aber die Indizes offenbar nicht. Ich habe überlegt ob das vieleicht mit den unsauberen else-Zweigen zusammenhängen kann, habe da aber keine wirkliche Lösung gefunden.
Hat jemand eine Idee?
Code:
import java.util.*;
class arraygames {
public static void main(String[] args) {
int[] arraygame = new int[10];
int i;
int maxarray = arraygame.length;
int max = 0;
int min = 1000;
for (i=0; i < arraygame.length; i++) {
int zufallszahl = (int) (Math.random()*1001);
arraygame[i] = zufallszahl;
}
for (i=0; i < arraygame.length; i++) {
if (arraygame[i] > max) {
max = arraygame[i];
}
else {
max = max;
}
}
for (i=0; i < arraygame.length; i++) {
if (arraygame[i] < min) {
min = arraygame[i];
}
else {
min = min;
}
}
int indexMin = Arrays.binarySearch(arraygame, min);
System.out.println();
System.out.println("Das Maximum des Arrays ist " + max +
" und hat den Index " + Arrays.binarySearch(arraygame, max) + ".");
System.out.println("Das Minimum des Arrays ist " + min +
" und hat den Index " + indexMin + ".");
System.out.println();
}
}