我似乎無法弄清楚爲什麼它不正確打印:Java:計算給出錯誤的答案,我的錯誤在哪裏?
public class test3 {
public static void main(String[] args) {
double[] gens = {100, 200.1, 9.3, 10};
double d0 = 0;
double d1 = 0;
double d2 = 0;
double d3 = 0;
double d4 = 0;
double d5 = 0;
double d6 = 0;
double d7 = 0;
double d8 = 0;
double d9 = 0;
for (int i = 0; i < gens.length; i++) {
double percs = gens[i];
while (percs < -9 || 9 < percs) percs /= 10;
percs = Math.abs(percs);
if (percs == 0) {
d0 += 1;
}
else if (percs == 1) {
d1 += 1;
}
else if (percs == 2) {
d2 += 1;
}
else if (percs == 3) {
d3 += 1;
}
else if (percs == 4) {
d4 += 1;
}
else if (percs == 5) {
d5 += 1;
}
else if (percs == 6) {
d6 += 1;
}
else if (percs == 7) {
d7 += 1;
}
else if (percs == 8) {
d8 += 1;
}
else if (percs == 9) {
d9 += 1;
}
}
double[] pack = {
d0 /= gens.length,
d1 /= gens.length,
d2 /= gens.length,
d3 /= gens.length,
d4 /= gens.length,
d5 /= gens.length,
d6 /= gens.length,
d7 /= gens.length,
d8 /= gens.length,
d9 /= gens.length
};
System.out.println(pack[0]);
System.out.println(pack[1]);
System.out.println(pack[2]);
System.out.println(pack[3]);
System.out.println(pack[4]);
System.out.println(pack[5]);
System.out.println(pack[6]);
System.out.println(pack[7]);
System.out.println(pack[8]);
System.out.println(pack[9]);
}
}
我知道這是很重複,但是這只是我正在處理它現在。
無論如何,本質上,它應該將這四個數字放在gens數組中,將它們分別切到每個數字的第一個數字(即分別爲1,2和9),然後計算每個數字從0 -9顯示出來,所以'1'應該給0.5(50%),2應該給0.25(25%),9應該給0.25(25%),其中0-9的每個其他數字應該給0。數字'1'爲0.5,而其他數字爲0,我一直無法找到我的錯誤。我得到的結果取決於我輸入的數字(硬編碼),但它們幾乎總是錯誤的。
任何想法?
謝謝!
打我吧:) – Ina
哦,我總是忘了的時候,什麼時候不投,謝謝ARS和@Ina 另外,我敢肯定的方法,你認爲偉大的作品太多,但我還沒學會還有相當數量的東西,所以我應該堅持我現在知道的。 – Nate
@Nate當然,只是想指出,還有其他的選擇:-)無論如何,很高興我可以幫助 - 不要忘記接受一個答案! – arshajii