一、案例一
案例说明 | 案例:定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,总和,平均值,并输出出来 |
代码实现 | public class ArrayExer01 { System.out.println(); //3.1 求最大值 //3.2 求最小值
//3.4 求平均值
|
二、案例二
案例说明 | 案例:评委打分 分析以下需求,并用代码实现: (1)在编程竞赛中,有10位评委为参赛的选手打分,分数分别为:5,4,6,8,9,0,1,2,7,3 (2)求选手的最后得分(去掉一个最高分和一个最低分后其余8位评委打分的平均值) |
代码实现 | public class ArrayExer02 { int[] scores = {5,4,6,8,9,0,1,2,7,3}; for (int i = 0; i < scores.length; i++) { int avg = (sum - max - min) / (scores.length - 2);
|
三、案例三
案例说明 | 找最值及其所有最值的下标 |
代码实现一 | public class Test13AllMaxIndex { //遍历数组,看哪些元素和最大值是一样的 |
代码实现二 | public class Test13AllMaxIndex2 { System.out.println("最大值是" + max); |
四、案例四
案例说明 |
提示: |
代码实现 | public class YangHuiTest { //1. 创建二维数组 //2.使用循环结构,初始化外层数组元素 }
|
五、案例五
案例说明 | 案例:复制、赋值 使用简单数组 思考:array1和array2是什么关系? 拓展:修改题目,实现array2对array1数组的复制 |
代码实现(赋值) | public class ArrayExer04 { for (int i = 0; i < array2.length; i++) { System.out.println();//换行 |
代码实现(复制) | public class ArrayExer04_1 { System.out.println(); for (int i = 0; i < array2.length; i++) { System.out.println();//换行 |
六、案例六
案例说明 | 案例: 定义数组:int[] arr = new int[]{34,54,3,2,65,7,34,5,76,34,67}; 如何实现数组元素的反转存储?你有几种方法。 |
代码实现1 | public class ArrayExer05 { //遍历 //反转操作 |
代码实现2 | public class ArrayExer05 { //遍历 //反转操作 |
代码实现3 | public class ArrayExer05 { //遍历 //反转操作 //方式3:不推荐 arr = newArr; //遍历 |
七、案例七
案例说明 | 一个数组,让数组的每个元素去除第一个元素,得到的商作为被除数所在位置的新值。 |
代码实现 | public class Test3 { public static void main(String[] args) { int[] arr = new int[]{12,43,65,3,-8,64,2}; // for(int i = 0;i < arr.length;i++){ // arr[i] = arr[i] / arr[0]; // } for(int i = arr.length -1;i >= 0;i--){ arr[i] = arr[i] / arr[0]; } //遍历arr for(int i = 0;i < arr.length;i++){ System.out.print(arr[i] + " "); } } } |
七、案例七
案例说明 | 创建一个长度为6的int型数组,要求数组元素的值都在1-30之间,且是随机赋值。同时,要求元素的值各不相同。 |
代码实现 | public class Test4 { boolean flag = false; for (int i = 0; i < arr.length; i++) { for (int i = 0; i < arr.length; i++) { |
八、案例八:回形数
案例说明 | 从键盘输入一个整数(1~20) ,则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。 例如: 输入数字2,则程序输出: 1 2 4 3 输入数字3,则程序输出: 1 2 3 8 9 4 7 6 5 输入数字4, 则程序输出: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 |
代码实现一 | //方式1 public class RectangleTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("输入一个数字"); int len = scanner.nextInt(); int[][] arr = new int[len][len]; int s = len * len; /* * k = 1:向右 * k = 2:向下 * k = 3:向左 * k = 4:向上 */ int k = 1; int i = 0,j = 0; for(int m = 1;m <= s;m++){ if(k == 1){ if(j < len && arr[i][j] == 0){ arr[i][j++] = m; }else{ k = 2; i++; j--; m--; } }else if(k == 2){ if(i < len && arr[i][j] == 0){ arr[i++][j] = m; }else{ k = 3; i--; j--; m--; } }else if(k == 3){ if(j >= 0 && arr[i][j] == 0){ arr[i][j--] = m; }else{ k = 4; i--; j++; m--; } }else if(k == 4){ if(i >= 0 && arr[i][j] == 0){ arr[i--][j] = m; }else{ k = 1; i++; j++; m--; } } } //遍历 for(int m = 0;m < arr.length;m++){ for(int n = 0;n < arr[m].length;n++){ System.out.print(arr[m][n] + "\t"); } System.out.println(); } } } |
代码实现二 | //方式2 public static void main(String[] args) { |