使系统生成50个0-9之间的随机数,将每个数字出现的次数存入一个一维数组中,统计出现次数最多和出现次数最少的数字,及出现次数和出现频率。
import java.util.Scanner;
public class Anpa1010doubleball {
public static void main(String[] args) {
int [] b=new int [50]; //定义长度为50的数组b
int [] number=new int[10]; //定义长度为10的数组number用来统计数组b中
//产生的0~9的个数
for(int i=0;i<b.length;i++){
b[i]=(int)(Math.random()*10); //随机生成50个0~9的数,
//并存到数组b中
}
for(int i=0;i<b.length;i++){
int num=b[i]; //将数组b中的数提取出来
number[num]++; //因为0~9这10个数对应数组number的下表位, //所以从数组b中提取出来的0~9直接赋到数组number中
//比如num=b[i]=0,则number[0]自增一次
}
int most=0; //统计生成最多的数
int least=50; //统计生成最小的数
for(int i=0;i<number.length;i++){
while(number[i]>most){ //比较生成的数中最多的数的个数
most=number[i]; //与生成最大值和最小值相似
break;
}
while(number[i]<least){ //比较生成的数中最少的数的个数
least=number[i];
break;
}
System.out.print(i+"出现的次数是"+number[i]+"\n");
//0~9每个数出现的次数
}
//有可能出现好几个相同次数的数,所以用for循环。
for(int i=0;i<number.length;i++){
while(number[i]==most){
System.out.println("出现最多的数是"+i+",共出现"+number[i]+"次,出现频率为:"+(number[i]*0.02));
break;
}
while(number[i]==least){
System.out.println("出现最少的数是"+i+",共出现"+number[i]+"次,出现频率为:"+(number[i]*0.02));
break;
}
}