public class Rtest {
public static void main(String[] args) {
Random r = new Random(); //创建一个Random类
int[] count = new int[41];
for (int i = 0; i < 50; i++) {
int a = r.nextInt(41) + 10; //这里的nextInt()方法返回一个整数,这个整数的范围在0(包括0)和指定值(不包括)即41之间的一个整数。也就是返回[0,40]
System.out.print(a + " ");
/*这里将你随机出来的数字输出之后,输出,但是不保存,只将与随机出来的这个数字的次数保存到数组中,下标是随机出来的这个数字
*/
count[a - 10]++;// 记录数字出现的次数
}
System.out.println("-----------------");
for (int j = 0; j < count.length; j++) {
// System.out.println(count[j]);
if (0 == count[j]) { // 如果出现的次数等于0,跳过当次
continue;
}
System.out.println((10 + j) + "出现的次数" + count[j]);//将数组中不为0 的数字输出,即其下标对应的数字出现的次数
}
int max = count[0]; //将count[0]的值付给max
for (int k = 0; k < count.length; k++) {
if (max < count[k]) { //如果数组中的元素有大于max的,那么就将该数赋给max,这样一直到循环结束,max边得到了数组元素中的最大值
max = count[k];
}
}
System.out.println("出现最大的次数为" + max + "次");
for (int g = 0; g < count.length; g++) { //这里是将出现最大次数的数字输出
if (max == count[g]) {
System.out.println(g + 10);
}
}
}
}
给你写了注释了,希望你能看懂,多做点这样类似的小题目,常用的算法等,就能很明白的看懂这样的题目了,例如你可以试着优化一下上面的代码
|