黑马程序员技术交流社区
标题:
关于数组的随机数问题,很费解,求大神指导
[打印本页]
作者:
梁胜海
时间:
2012-11-7 11:01
标题:
关于数组的随机数问题,很费解,求大神指导
题目要求:随机生成50个数字(整数),每个数字的范围是[10,50],统计每个数字出现的次数以及出现次数最多的数字与它的个数,最后将每个数字及其出现次数打印出来,如果某个数zi出现次数为0,则不要打印它。打印时按照数字的升序排列
下面是代码:
import java.util.Random;
public class RandomTest2 {
public static void main(String[] args) {
Random r= new Random();
int[] count = new int[41];
for(int i=0;i<50;i++){
int a=r.nextInt(41)+10;
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]);
}
int max=count[0];
for(int k=0;k<count.length;k++){
if(max<count[k]){
max=count[k];
}
}
System.out.println("出现最大的次数为"+max+"次");
for(int g=0;g<count.length;g++){
if(max==count[g]){
System.out.println(g+10);
}
}
}
}
总之,希望细心热心的大神最好把代码拷下去,写个详细的注释,我只把这代码看的朦朦胧胧,只希望某位大神能有更清晰的思路让我理解更彻底些。
作者:
sixth
时间:
2012-11-7 12:49
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);
}
}
}
}
给你写了注释了,希望你能看懂,多做点这样类似的小题目,常用的算法等,就能很明白的看懂这样的题目了,例如你可以试着优化一下上面的代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2