0
幫我找到這段代碼中的錯誤,我不明白爲什麼它不起作用。我想顯示數組中的所有唯一數字,以及它們的頻率(它們發生的次數)。查找數組中不同數字的方法及其頻率
package myProj;
import java.util.Scanner;
public class Freq {
static boolean isRepeated(int[] temp,int zz){
int flag=0;
int l=java.util.Arrays.asList(temp).indexOf(zz);
for(int p=0;p<l;p++){
if(temp[p]==zz){
flag=flag+1;
}
}
if(flag==0){
return false;
}
else{
return true;
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("enter the no of array elements");
int numOfNumbers = sc.nextInt();
int arrayOfNumbers[] = new int[numOfNumbers];
for (int i = 0; i < numOfNumbers; i++) {
System.out.print("Enter the number:");
arrayOfNumbers[i] =sc.nextInt();
}
for(int i = 0; i<numOfNumbers; i++){
int z=arrayOfNumbers[i];
if(!(isRepeated(arrayOfNumbers,z))){
int count=0;
for(int j=0;j<numOfNumbers;j++){
if(arrayOfNumbers[j]==arrayOfNumbers[i]){
count=count+1;
}
else{
continue;
}
}
System.out.println("Frequency of "+arrayOfNumbers[i]+"is"+count);
}
else{
continue;
}
}
}
}
實施例預期輸出頻率的[2,20,11,10,5,14,47,23,20,12,11,10]
- 2:1頻率20的:2頻率的11:2頻率 10:頻率的5 2:1頻率14:頻率的47 1:1 頻率的23:頻率的1 12:1
請幫助糾正我的代碼而不是提出新的邏輯。
'的indexOf()''中使用isRepeated()'返回的數量第一次出現。改變方法。 –
用lastIndexOf()替換indeOf(),但爲什麼所有這些for循環?你想做什麼? – esprittn
改寫之前(以及之後)的代碼,並澄清措辭+標題「問」。 – Virgil