-1
我是新來的java,我有一個家庭作業,我需要找到一個數組的平均值,中位數和模式。出於某種原因,我的代碼沒有提出正確的答案。如何在java中找到數組的模式?
這裏是我提供給創建數組的代碼:
public static void main(String[] args) {
int[] test01 = new int[]{2,2,2,2,2};
int[] test01Results = new int[]{2,2,2,2};
int[] test02 = new int[]{1,2,1,3,5,6,6,1,2,2,2,99,100};
int[] test02Results = new int[]{2,2,17,100};
int[] test03 = new int[]{100,200,300,400,300};
int[] test03Results = new int[]{300,300,260,400};
int[] test04 = new int[]{100};
int[] test04Results = new int[]{100,100,100,100};
int[] test05 = new int[]{100,1};
int[] test05Results = new int[]{1,100,50,100};
這裏是我想出了嘗試計算模式:
public int mode() {
int result = 0;
// Add your code here
int repeatAmount = 0; //the amount of repeats accumulating for the current i
int highestRepeat=0; // the highest number of repeats so far
for (int i=0; i<numberArray.length; i++) {
for (int j=i; j<numberArray.length; j++) {
if (i != j && numberArray[i] == numberArray[j]) {
repeatAmount++;
if (repeatAmount>highestRepeat) {
result=numberArray[i];
}
repeatAmount = highestRepeat;
}
repeatAmount=0; // resets repeat Count for next comparison
}
}
return result;
}
我得到正確的測試1,2和3的結果,但得到測試4和5的錯誤結果。有誰知道我做錯了什麼?
謝謝!
可能的重複:http://stackoverflow.com/questions/15725370/write-a-mode-method-in-java-to-find-the-most-first-occurring-element-in-an – prabodhprakash
他有做了他的功課,但面臨一些問題@Shadetheartist –
@ rish可以理解,但prabod能夠在一分鐘內找到可能的重複,所以這表明OP在發佈問題之前沒有投入足夠的精力研究他的問題。 – Shadetheartist