随机产生1~100的100个随机数,如何统计,重复出现三次的数,并打印出来?
int[] num = new int[100];
int[] num3Ci = new int[100];
int time = 0;
for(int i=0;i<num.length;i++){
num[i] = (int)(Math.random()*100) + 1;
System.out.print(num[i] + "\t");
if((i+1)%10==0){
System.out.println();
}
}
for(int i=0;i<num.length;i++){
time = 0;
for(int j=i+1;j<num.length;j++){
if(num[i]==num[j]){
time++;
}
if(j==num.length-1 &&time==2){
num3Ci[i] = num[i];
}
}
}
System.out.print("\n出现三次的数有:");
for(int i=0;i<num3Ci.length;i++){
if(num3Ci[i]!=0){
System.out.print(num3Ci[i] + "\t");
}
}
}我这样写的话,会把出现三次以上的数也都会打印出来?
如何让它单单只打印出现三次的数呢?
int[] num = new int[100];
int[] num3Ci = new int[100];
int time = 0;
for(int i=0;i<num.length;i++){
num[i] = (int)(Math.random()*100) + 1;
System.out.print(num[i] + "\t");
if((i+1)%10==0){
System.out.println();
}
}
for(int i=0;i<num.length;i++){
time = 0;
for(int j=i+1;j<num.length;j++){
if(num[i]==num[j]){
time++;
}
if(j==num.length-1 &&time==2){
num3Ci[i] = num[i];
}
}
}
System.out.print("\n出现三次的数有:");
for(int i=0;i<num3Ci.length;i++){
if(num3Ci[i]!=0){
System.out.print(num3Ci[i] + "\t");
}
}
}我这样写的话,会把出现三次以上的数也都会打印出来?
如何让它单单只打印出现三次的数呢?
这种问题很简单呀,用个HasMap 就可以实现统计次数,然后在加个if 判断就行了。
不过我后来找到问题啦,我在判断重复出现次数时
for(int j=i+1;j <num.length;j++)
应该写成
for(int j=0;j <num.length;j++){
if(num[i]==num[j] && i!=j){
time++;
}
这样可以确定只统计出现三次的数啦