分两次遍历数组,
成都创新互联公司是一家集网站设计制作、成都网站建设、网站页面设计、网站优化SEO优化为一体的专业网站建设公司,已为成都等多地近百家企业提供网站建设服务。追求良好的浏览体验,以探求精品塑造与理念升华,设计最适合用户的网站页面。 合作只是第一步,服务才是根本,我们始终坚持讲诚信,负责任的原则,为您进行细心、贴心、认真的服务,与众多客户在蓬勃发展的市场环境中,互促共生。
先统计各数出现的次数,记录到一个新的数组中,并启记录下最大次数
然后,遍历第二个数组,找出符合最大次数的各数,即可!
public
static
double
mode(double[]
array)
{
Arrays.sort(array);
int
count
=
1;
int
longest
=
0;
double
mode
=
0;
for
(int
i
=
0;
i
array.length
-
1;
i++)
{
if
(array[i]
==
array[i
+
1])
{
count++;
}
else
{
count
=
1;//如果不等于,就换到了下一个数,那么计算下一个数的次数时,count的值应该重新符值为一
continue;
}
if
(count
longest)
{
mode
=
array[i];
longest
=
count;
}
}
System.out.println(longest);//打印出这个数出现的次数已判断是否正确
return
mode;
}
我运行过了,是对的
import java.util.Scanner;
public class P
{
public static void main(String[] args)
{
int i,j,t,len,max=1;
int[][] d=new int[10][2];
Scanner sc=new Scanner(System.in);
d[0][0]=sc.nextInt();
d[0][1]=1;
len=1;
for(i=1;i10;i++)
{
t=sc.nextInt();
for(j=0;jlen;j++)
{
if(d[j][0]==t)
{
d[j][1]++;
break;
}
}
if(j=len)
{
d[len][0]=t;
d[len++][1]=1;
}
if(d[j][1]max)
max=d[j][1];
}
for(i=0;ilen;i++)
if(d[i][1]==max)
System.out.println(""+d[i][0]+" "+max);
sc.close();
}
}