🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[success] # 获取每个数出现频率 ![](https://img.kancloud.cn/87/22/872215453ad5720e1605676cf3c839e1_1258x524.png) ~~~ import java.util.Scanner; public class CounterNum { public static void main(String[] args) { // 初始化每一位占位 int[] pos = new int[10]; Scanner sc = new Scanner(System.in); int temp = sc.nextInt(); int num = temp; // 获取个位 while (num > 0) { pos[num % 10] += 1; num /= 10; } for (int i = 0; i < pos.length; i++) { System.out.print(pos[i]); } } } ~~~ >[success] # 录入学生成绩 ~~~ import java.util.Scanner; public class SourceTest { public static void main(String[] args) { System.out.println("输入班级人数"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int[] students = new int[num]; // 录入每个学生成绩 for (int i = 0; i < students.length; i++) { System.out.println("请输入第" + (i + 1) + "个学生的考试成绩:"); students[i] = sc.nextInt(); } // 计算班级总分 并且算出平均分 int sum = 0; for (int i = 0; i < students.length; i++) { sum += students[i]; } // 平均成绩 double avg = sum * 1.0 / num; System.out.println("本班级学生的总分是:" + sum + ",平均分是:" + avg); } } ~~~ >[success] # 随机数 ~~~ public class ArrTest { public static void main(String[] args) { /*需求:生成10个1~100之间的随机数存入数组。 1)求出所有数据的和 2)求所有数据的平均数 3)统计有多少个数据比平均值小*/ //分析: //1.定义数组 int[] arr = new int[10]; //2.把随机数存入到数组当中 Random r = new Random(); for (int i = 0; i < arr.length; i++) { //每循环一次,就会生成一个新的随机数 int number = r.nextInt(100) + 1; //把生成的随机数添加的数组当中 //数组名[索引] = 数据; arr[i] = number; } // 1)求出所有数据的和 //定义求和变量 int sum = 0; for (int i = 0; i < arr.length; i++) { //循环得到每一个元素 //并把元素累加到sum当中 sum = sum + arr[i]; } System.out.println("数组中所有数据的和为:" + sum); //2)求所有数据的平均数 int avg = sum / arr.length; System.out.println("数组中平均数为:" + avg); //3)统计有多少个数据比平均值小 int count = 0; for (int i = 0; i < arr.length; i++) { if(arr[i] < avg){ count++; } } //当循环结束之后,就表示我已经找到了所有的比平均数小的数据 System.out.println("在数组中,一共有" + count + "个数据,比平均数小"); //遍历数组,验证答案 for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } } ~~~ >[success] # 数组中头尾交换 ~~~ public class ArrTest { public static void main(String[] args) { /*需求:定义一个数组,存入1,2,3,4,5。交换首尾索引对应的元素。 交换前:1,2,3,4,5 交换后:5,2,3,4,1*/ //1.定义数组存储数据 int[] arr = {1,2,3,4,5}; //2.利用循环去交换数据 for(int i = 0,j = arr.length - 1; i < j; i++,j--){ //交换变量i和变量j指向的元素 int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } //当循环结束之后,那么数组中的数据就实现了头尾交换 for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } } ~~~ >[success] # 随机交换 ~~~ public class ArrTest { public static void main(String[] args) { //需求:定义一个数组,存入1~5。要求打乱数组中所有数据的顺序。 //难点: //如何获取数组中的随机索引 /* int[] arr = {1,2,3,4,5}; //索引范围:0 1 2 3 4 Random r = new Random(); int randomIndex = r.nextInt(arr.length); System.out.println(randomIndex);*/ //1.定义数组存储1~5 int[] arr = {1, 2, 3, 4, 5}; //2.循环遍历数组,从0索引开始打乱数据的顺序 Random r = new Random(); for (int i = 0; i < arr.length; i++) { //生成一个随机索引 int randomIndex = r.nextInt(arr.length); //拿着随机索引指向的元素 跟 i 指向的元素进行交换 int temp = arr[i]; arr[i] = arr[randomIndex]; arr[randomIndex] = temp; } //当循环结束之后,那么数组中所有的数据已经打乱顺序了 for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } ~~~