Habe es jetzt soweit geschafft:
// Histogramm.java package aufgabe2;
import java.util.Scanner;
/** * Histogramm liest ganze Zahlen zwischen 1 und 6 ein und * gibt deren Häufigkeitsverteilung als Histogramm aus. * @author Denis Alic * @version TODO: 03.11.2014 */ public final class Histogramm { private Histogramm() { }
private static final Scanner EINGABE = new Scanner(System.in);
/**
* main ist der Startpunkt des Programms.
* @param args wird nicht verwendet.
*/
public static void main(final String[] args) {
int[] counter = {0,0,0,0,0,0};
//-------------------------------------------------- Zahlen einlesen
System.out.println("Ganze Zahlen zwischen 1 und 6 eingeben "
+ "(Ende mit Strg-D):");
while (EINGABE.hasNext()) {
int number = EINGABE.nextInt();
switch (number) {
case 1:
counter[0]++;
break;
case 2:
counter[1]++;
break;
case 3:
counter[2]++;
break;
case 4:
counter[3]++;
break;
case 5:
counter[4]++;
break;
case 6:
counter[5]++;
break;
default: System.out.println("Falsche Eingabe wird ignoriert: " + number);
}
}
System.out.println("Strg-D");
System.out.println("Histogramm:");
for(int i=0;i<6;i++){
int j=0;
while(j<counter[i]){
if((j+1)%5 == 0){
System.out.print("$");
}
System.out.print((i+1));
j++;
}
System.out.print(" (" + counter[i] + ") " + "\n");
}
//---------------------------------------------- Histogramm ausgeben
}
}
Konsolenausgabe:
DenissMacBook:HTWG rebekka$ java aufgabe2.Histogramm
Ganze Zahlen zwischen 1 und 6 eingeben (Ende mit Strg-D):
1 1 2 2 2 3 3 3 3 4 4 5 5 5 6 7
Falsche Eingabe wird ignoriert: 7
3 5 5 5 5 5 5 5 5 6
Strg-D
Histogramm:
11 (2)
222 (3)
3333$3 (5)
44 (2)
5555$55555$55 (11)
66 (2)
Letztes Problem: Die Häufigkeit 5 wird mir sowohl als "$", als auch als weitere Zahl angezeigt, vielleicht jetzt eine Hilfestellung? Bzw. fett zu schreiben, verstehe ich nicht.