Einen schönen guten Morgen,
ich hab vor zwei Monaten angefangen Informatik zu studieren und wir müssen jede Woche aufgaben abgeben bei der Aufgabe für diese Woche stehe ich auf dem Schlauch.
Wir sollen eine art Wahltafel in einen int [] []a einlesen.
Größe des Arrys zu bestimmen war kein Problem, aber wie bekomme ich jetzt die einzelnen Zahlenreihen eingelesen?
Bsp: man hat 2 Wähler und 4 Kanidadten und jeder Wähler darf sich aussuchen in welcher Reihenfolge er die Kanidadten wählt:
W1 = (2,1,3,4)
W2 = ((3,2,4,1)
Weiß einer wie ich das hinkriege?
Und danke schonmal für jede Antwort die ich bekomme
richtig verstanden habe Dein Problem nicht, zudem sind die Infos etwas dürftig!
Wie wird die Reihenfolge festgelegt? Zufällig oder per Eingabe?
Das reine Füllen eines Arrays kannst bspw. ganz einfach in einer Schleife bewerkstelligen:
Java:
// ACHTUNG: quasi Pseudocode !!for(int i =0; i <LaengeDerWerteliste; i++){
myArray[i]='i-ter'Wert;}
Was genau soll int [] []a für ein Konstrukt sein ??
Du möchtest also, dass jeder Wähler x Einträge machen kann?
Wenn du jetzt, wie in deinem Beispiel 2 Wähler a 4 Einträge hast würde ich das so machen:
Java:
// Du lässt dir die Anzahl der Wähler und Anzahl der Stimmen geben// ob per Eingabe oder per festen Wert sei mal dahin gestelltint anzWähler =2;int anzStimmen =4;int[][] stimmen =newint[2][4];Scanner s =newScanner(System.in);// Mit einer for-Schleife kannst du jetzt die Anz. der Wähler durchlaufenfor(int i =0; i < anzWähler; i++){// Mit einer inneren for-Schleife lässt du den Wähler i solange Einträge machen wie j < Anz. der Stimmen istfor(int j =0; j < anzStimmen; j++){// Wenn du die Werte in einem 2D Array speicherst, dann repräsentiert die erste [] den Wähler und die 2. [] die Stimmen// Daher kannst du die Werte folgendermaßen zuweisenSystem.out.print("Bitte für Wähler "+ i +" den "+ j +". Wert eingeben: ");
stimmen[i][j]= s.nextInt();}System.out.println();}
Nachtrag:
jetzt könntest du dir natürlich noch eine Methode machen die prüft, ob der Wert gültig ist oder nicht. Gültig wäre ein Wert dann, wenn er 1 <= wert <= anzStimmen und er noch nicht in stimmen[x][] (also einer Zeile) vorhanden ist.
Dazu müsstest du dann hier:
Java:
for(..){for(..){---> hier
}}
eine if-Abfrage machen if(isValid(input) {..} und wenn die Methode true zurück gibt den Wert setzten. input repärsentiert dann übrigens den Wert von s.nextInt();