Hallo, ich hab ein Problem mit einer Schulaufgabe und wäre glücklich wenn mir jemand von euch helfen könnte ...
Ich hab leider auch im Internet nichts geholfen was mir verständlich geholfen hat :/
Mittels
durchsuche ich mein Array nach einer zuvor eingelesenen Zahl, die Zahl kommt allerdings unter umständen mehrfach vor und mir wird der Mittelwert der gefundenen Indexpositionen ausgegeben, es soll aber nur die erste ausgegeben werden.
hier nochmal der gesamte Quellcode zum einfacheren nachvollziehen:
Wäre euch sehr dankbar für etwas Hilfe!
Beste Grüße SeoxX
Ich hab leider auch im Internet nichts geholfen was mir verständlich geholfen hat :/
Mittels
Java:
System.out.println("Die Zahl ist gespeichert unter Position: " + Arrays.binarySearch(randomArray, zahl));
durchsuche ich mein Array nach einer zuvor eingelesenen Zahl, die Zahl kommt allerdings unter umständen mehrfach vor und mir wird der Mittelwert der gefundenen Indexpositionen ausgegeben, es soll aber nur die erste ausgegeben werden.
hier nochmal der gesamte Quellcode zum einfacheren nachvollziehen:
Java:
import java.util.*; //Import der Java Utilities Klasse
/**
* Description: Programm zum erzeugen von Zufallszahlen, speichern und durchsuchen von Arrays
* @version 1.0 from 06.02.2015
* @author
*/
public class Array_A2_Zufall {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
final int ANZ = 100;
//int i= 0;
char auswahl = 'a', wiederholer = 'j';
int zahl = 0;
int i = 0, ganzeZahl = 0, position = 0;
Random zufall = new Random();
//Array Erstellung
int randomArray[] = new int[ANZ];
//do Schleife zur Programmwiederholung
do {
//Menü
System.out.println("Bitte geben Sie ein welche Aktion Sie durchführen wollen: ");
System.out.println("a für die erzeugung der Zufallszahlen");
System.out.println("b für die Ausgabe aller Zufallszahlen");
System.out.println("c für die Suche einer Zahl innerhalb der Zufallszahlen");
//Ende Auswahlmenü
//Einlesen der Auswahl
auswahl = scanner.next().charAt(0);
//Switch Case
switch (auswahl) {
case 'a':
i = 0;
do {
randomArray[i] = zufall.nextInt(50);
System.out.println( i + ". ganze Zufallszahl: " +randomArray[i]);
i++;
} while (i<ANZ); //Bedingung wiederhole solange i kleiner Array länge ist
break;
case 'b': //Ausgabe aller Temperatur Werte
i = 0;
do {
System.out.println(i+ ".Der Wert beträgt: "+randomArray[i]); //Ausgabe aller Werte mittels Zählschleife
i ++;
}while (i<ANZ); //Bedingung wiederhole solange i kleiner Array länge ist
break;
case 'c':
zahl = 0;
System.out.println("Bitte geben Sie die Zahl ein nach der Sie suchen wollen");
zahl = scanner.nextInt();
Arrays.sort(randomArray);
//Ausgabe der Sortierten Zahlen Anfang
i = 0;
do {
System.out.println(i+ ".Der Wert beträgt: "+randomArray[i]); //Ausgabe aller Werte mittels Zählschleife
i ++;
}while (i<ANZ);
//Ausgabe der Sortierten Zahlen Ende
//Ausgabe der Indexposition der gesuchten Zahl
System.out.println("Die Zahl ist gespeichert unter Position: " + Arrays.binarySearch(randomArray, zahl));
break;
default:
System.out.println("Sie haben eine Falsche Angabe gemacht");
}
System.out.println("Geben sie j ein wenn sie zurück zur Auswahl kehren wollen, andernfalls geben Sie n ein: ");
//Einlesen wiederholer Variable (Benutzer Variable)
wiederholer = scanner.next().charAt(0);
} while (wiederholer == 'j');
System.out.println("Sie haben eine Falsche Angabe gemacht");
}
}
Wäre euch sehr dankbar für etwas Hilfe!
Beste Grüße SeoxX
Zuletzt bearbeitet: