统计每个整数的出现次数
### 统计每个整数的出现次数 #### 知识点概述 本篇文章将详细介绍一个Java程序的设计与实现过程,该程序的主要功能是随机生成指定数量(本例中为40个)介于0到100之间的整数,并统计这些整数的出现次数。程序将按照从小到大的顺序输出每个整数及其出现次数。 #### 代码解析 ##### 1. 随机数生成与存储 ```java public class zy { public static void main(String[] args) { int i; int array[] = new int[40]; // 定义一个长度为40的数组,用于存储随机生成的整数 for (i = 0; i < 40; i++) { // 循环40次,生成40个随机数 int n; n = (int) ((100 * (Math.random()))); // 生成0到99之间的随机整数 array[i] = n; System.out.print(n + ""); // 输出当前生成的随机数 } System.out.println(); // 换行 ``` - **数组定义**:定义了一个长度为40的数组`array`,用于存储接下来随机生成的整数。 - **循环生成随机数**:通过循环40次,每次生成一个0到99之间的随机整数(使用`Math.random()`方法),并将其存储在数组`array`中。 - **输出随机数**:在生成过程中,即时输出每个随机数。 ##### 2. 统计整数出现次数 ```java for (int k = 1; k <= 100; k++) { // 循环1到100,统计每个整数出现的次数 int count = 0; for (int j = 0; j < 40; j++) { if (k == array[j]) { count++; // 如果找到匹配,则增加计数器 } } if (count != 0) { // 只输出出现次数不为0的整数 System.out.println("生成的" + k + "值的次数为" + count); } } ``` - **外部循环**:遍历1到100的所有整数,以确定每个整数是否出现在之前生成的数组中。 - **内部循环**:对于每个整数`k`,遍历整个数组`array`,检查是否存在相等的元素,并记录出现的次数。 - **输出结果**:如果某个整数出现的次数不为0,则输出该整数及其出现次数。 ##### 3. 排序与输出 ```java int p = 0, q = 0, temp = 0; // 定义排序所需的变量 for (p = 0; p < 40; p++) { // 冒泡排序算法 for (q = 0; q < 40; q++) { if (array[p] < array[q]) { // 比较大小,进行交换 temp = array[p]; array[p] = array[q]; array[q] = temp; } } } System.out.println(""); // 换行 for (int r = 0; r < 40; r++) { // 输出排序后的结果 System.out.print(array[r] + ""); } } } ``` - **冒泡排序算法**:使用冒泡排序算法对数组中的所有元素进行排序,使得数组按从小到大的顺序排列。 - **输出排序后的结果**:输出排序后数组中的所有元素。 #### 总结 该Java程序通过三个主要步骤实现了题目要求的功能:生成了40个介于0到99之间的随机整数;统计了每个整数出现的次数,并输出了每个非零出现次数的整数及其对应的次数;对这些整数进行了排序并再次输出,确保了输出结果的有序性。这一过程不仅展示了基本的Java编程技巧,如数组操作、循环控制、条件判断等,还涉及到了简单的数据统计和排序算法的应用。