第1关:学习-Java数组之二维数值数组之多科成绩统计
任务描述
本关任务:统计如下图 1 中每个人的成绩总分。
相关知识
在之前的学习中,我们使用一维数组来存储某班级的数学成绩,如果我们还需存储其他科目的成绩(如下图 1 所示),就需要使用到二维数组了。
图1
二维数值数组的创建
二维数组定义:二维数组是指以一维数组作为元素的数组。其中存储数值的二维数组叫做二维数值数组。
二维数组创建语法:
// m表示二维数组有多少个数组(行),n表示每个一维数组的元素个数(列)
数据类型[][] 变量名=new 数据类型[m][n];
二维数值数组创建示例:
int[][] arr=new int[6][3]; // 创建一个用于存储图1成绩的二维数值数组。
二维数组初始化
数组初始化分为两种:动态初始化和静态初始化。 动态初始化:创建数组时,指定数组长度,但不指定数组存储的具体值。
示例:
int[][] arr=new int[6][3]; // 创建一个用于存储图1成绩的二维数值数组。
静态初始化:创建数组时,指定数组存储的具体值。 示例:
int[][] arr={{90,88,87},{89,90,77},{66,78,60}}; // 方式一,注意只能使用{}
int[][] arr=new int[][]{{90,88,87},{89,90,77},{66,78,60}}; // 方式二
二维数值数组元素的引用
我们可以使用数组名[x][y]
的方式来访问数组,其中数组的索引 x 和 y 都从 0 开始。 示例:
public static void main(String[] args) {
int[][] ints = new int[][]{{2,3},{4,5,6}};
System.out.println(ints[0][1]); // ints[0][1] 表示二维数组的第一行第二列
}
执行结果: 3
我们可以使用两个 for 循环遍历二维数组的每个值,其中第一个 for 循环遍历行,第二 个 for 循环遍历每一行的各列。
示例如下:
public static void main(String[] args) {
int[][] arr = new int[][]{{2,3},{4,5,6}};
for(int x=0;x<arr.length;x++){ // 遍历行
for(int y=0;y<arr[x].length;y++){ // 遍历列
System.out.print(arr[x][y]+" ");
}
System.out.println();
}
}
输出结果:
2 3
4 5 6
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
注意:图 1 中的是一号学生等中文类型的数字,而本关要求输出时改为阿拉伯数字。
例如:一号学生的成绩。
输出:“1号学生的总分:xx”。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
可在右侧 “测试结果”区查看具体的测试集详情。
public class PassWord {
public static void main(String[] args) {
// 创建二维数组存储所有人的成绩
int[][] arr = new int[][]{{90,88,87},{89,90,77},{66,78,60},{77,90,90},{89,78,67},{78,87,88}};
int[] sum = new int[6];
for (int i = 0 ; i < 6; i++){
for (int j = 0; j < 3; j++){
sum[i] = arr[i][j] + sum[i];
}
System.out.println( (i+1) + "号学生的总分:"+ sum[i]);
}
}
}