我正在嘗試編寫一個Java程序,用於爲數組中的每個值的每次出現生成星號的直方圖。直方圖的循環結構
如果這些元素分別爲0,1,2,3,4,5,6,7,8,9,則輸出應該在每次出現時都帶有一個星號。例如,
0:*
1:*
2:*
3:*
4:*
5:*
6:*
7:*
8:*
9:*
然而,我的輸出是
0:**********
1:
2:
3:
4:
5:
6:
7:
8:
9:
下面的下面的代碼是我自己的。
public static void drawHistogram(double[] array) {
String count = "";
for (int i = 0; i < array.length; i++) {
if (array[i] >= 0 && array[i] < 1) {
count += "*";
} else if (array[i] >= 1 && array[i] < 2) {
count += "*";
} else if (array[i] >= 2 && array[i] < 3) {
count += "*";
} else if (array[i] >= 3 && array[i] < 4) {
count += "*";
} else if (array[i] >= 4 && array[i] < 5) {
count += "*";
} else if (array[i] >= 5 && array[i] < 6) {
count += "*";
} else if (array[i] >= 6 && array[i] < 7) {
count += "*";
} else if (array[i] >= 2 && array[i] < 8) {
count += "*";
} else if (array[i] >= 2 && array[i] < 9) {
count += "*";
} else if (array[i] >= 9 && array[i] < 10) {
count += "*";
} else if (array[i] >= 10 && array[i] < 11) {
count += "*";
}
}
for (int j = 0; j <= 10; j++) {
System.out.print(j + count);
count = "";
System.out.println();
}
}
我該如何解決這個問題?
你好像只保留一個計數。您如何期望用一次計數來記錄多個值? –
我建議添加一個名爲countStrings []的新字符串數組,其中元素0跟蹤小於1的值的計數,元素1跟蹤小於2的值的計數等等。在每個'if'條件的代碼中,你會在數組中的相應元素上添加一個星號。例如,如果'array [i]> = 3 && array [i] <4',您可以執行語句'countStrings [3] + =「*」;' –
您可以通過使用' Math.floor'函數並擺脫所有if-then-else語句。 –