使系统生成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;

}

 }