题目:
编写程序,程序运行后随机生成100组36选7的数组(从数字1~36中随机选取7个数)并输出,然后统计1~36中各个数字出现的次数。
分析
我们可以有两种写法:
一种是采取二维数组来存储数据,
a[100][7],一百行,对应者一百组数据,每行有7个数据对应着一组数据有7个数据,
另外一种是采取一维数组来存储数据
(二维数组本质上也可以说是一维数组,a[700]来存储数据
所以这里
我们以一维数组为例来:
采用随机函数Random()来生成随机数;
Random r=new Random();
生成1-36的整形数组
我们可以这样写:r.nextInt(36)+1;(表示范围为[1,37))
再在for循环中写入:
count[36]计数数组
让产生的随机数来生成当做计数数组的索引值,完美
count[r.nextInt(36)];
之后便于简单
核心代码:
for (int i = 0,j=0; i < arr.length; i++,j++) {
arr[i]=random.nextInt(36)+1;
count[arr[i]-1]++;
if(j==7) {
j=0;
System.out.println();
}
System.out.print(arr[i]+" ");
}
代码实现
import java.text.ParseException;
import java.util.Random;
import javax.swing.JOptionPane;
public class Exer1Test {
public static void main(String[] args) {
int[] arr=new int[700];
int[] count=new int[36];
Random random=new Random();
for (int i = 0,j=0; i < arr.length; i++,j++) {
arr[i]=random.nextInt(36)+1;
count[arr[i]-1]++;
if(j==7) {
j=0;
System.out.println();
}
System.out.print(arr[i]+" ");
}
System.out.println();
for (int i = 0; i < count.length; i++) {
System.out.println((i+1)+"出现了"+count[i]+"次");
}
}
}