mihe7
Top Contributor
Und nochmal:
Dann schreib mal, was Du eingibst und was Du als Ausgabe erwartest.
Dann schreib mal, was Du eingibst und was Du als Ausgabe erwartest.
Nochmal: in Deinem Code kommt diese Variable nirgends vor. Du fragst nach der Größe des Arrays und liest genau so viele Werte ein. Du brauchst noch eine Abfrage, wie viele Werte eingelesen werden sollen und musst die for-Schleife dann entsprechend anpassen (also bis zu dem dort eingegebenen Wert laufen).6 steht für die Anzahl der Werte welche eingelesen werden
ich überlege schon die ganze Zeit ob man das anders machen kann, weil irgendwie müssen ja die Leerstellen im Array gelöst werden, aber die Methode kann ja nicht einfach so zwischen einer Leerstelle im Array und der eingabe 0 unterscheidennumbers = Arrays.copyOf(numbers, t);
import java.util.Scanner;
import java.util.Arrays;
public class Statistik {
@SuppressWarnings("resource")
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
int m = Integer.parseInt(args[1]);
int[] numbers = new int[n];
int [] counter = new int[n];
Scanner sc = new Scanner(System.in);
//Arrays.sort(numbers);
int t = 0;
for (int i = 0; i < m; i++) {
int inputToArray = sc.nextInt();
int find = findIndex(numbers, inputToArray, t);
if (find >= 0) {
counter[find]++;
} else {
numbers[t] = inputToArray;
counter[t] = 1; //für jede Zahl die nur 1 mal vorkommt eine 1 ins Counter Array
t++;
}
}
numbers = Arrays.copyOf(numbers, t);
counter = Arrays.copyOf(counter, t);
System.out.println(Arrays.toString(numbers));
System.out.println(Arrays.toString(counter));
}
// Function to find the index of an element
public static int findIndex(int arr[], int t, int n)
{
for (int i = 0; i < n; i++) {
if (arr[i] == t) { // ist das (i+1)-te Element aus arr gleich t?
return i; // dann gib den Index i zurück
}
}
return -1; // t nicht gefunden -> -1 zurück.
}
}