Scanner sc = new Scanner(System.in);
int ppl = sc.nextInt(); //Anzahl der Schüler
int ps = sc.nextInt(); //Punktzahl übergeben
Map<Integer, Stud> map = new LinkedHashMap<>(); //Haben Sie eine Schulregistrierungsnummer und eine Stud-Klasse
for(int i = 1; i <= ppl; i++) {
int a = sc.nextInt(); //Prüfungsergebnis
int b = sc.nextInt(); //Anzahl der Abwesenheiten
Stud s = new Stud(a, b); //Instanziierung
map.put(i, s); //Füllen Sie die Karte mit Ihrer Schulnummer und Instanz
}
for(int key : map.keySet()) {
Stud c = map.get(key);
int d = c.score; //Punktzahl für jede Schulregistrierungsnummer
int e = c.absent; //Anzahl der Abwesenheiten
int f = d - e * 5; //Berechnen Sie das Endergebnis
if(f <= 0) { //Wenn die Punktzahl aufgrund der Berechnung negativ wird, setzen Sie 0 als Untergrenze.
f = 0;
}
if(f >= ps) {
System.out.println(key);
}
}
}
}
class Stud { //Schülerklasse
int score; //Ergebnis
int absent; //Anzahl der Abwesenheiten
public Stud(int score, int absent) {
this.score = score;
this.absent = absent;
}
}
Ich habe die Methode zuerst mit einem Array entwickelt, aber sie schien kompliziert zu sein, also habe ich versucht, Map zu verwenden. Ich wollte sie in der Reihenfolge abrufen, in der sie gepackt waren, also habe ich LinkedHashMap verwendet.
Recommended Posts