1、什么是二维数组以及二维数组的写法
public class ArrayDemo01 {
public static void main(String[] args) {
/*
二维数组:即数组的嵌套,数组里面的元素又是一个数组
*/
//声明二维数组,数据类型[][] 数组名; 或者 数据类型 数组名[][];
//声明一个int类型的二维数组
int[][] nums;
//声明一个String类型的二维数组
String[][] strs;
//分配空间(告诉你这个数组里可以存储多少个元素): 数组名 = new 数据类型[数组长度][数组长度]; 或者 数组名 = new 数据类型[数组长度][];
//注意:二维数组在分配空间的时候,第一个数组长度必须要写,告诉你这个二维数组里有多少个元素,第二数组长度可以写,可以不写,不过写了,表示这个二维数组里的里面的元素(一维数组)的长度,如果没有写,这个二维数组里面的元素(一维数组)长度可以不一样
//给nums数组分配空,这个数组可以存储3个元素,里面的元素长度都相同,都为5
nums = new int[3][5];
//给strs数组分配空间,这个数组可以存储5个元素,里面的元素长度不相同
strs = new String[5][];
//赋值:数组名[下标][下标] = 数据;
//给nums数组里的第一个元素(一维数组)下标为0的元素赋值为9
nums[0][0] = 9;
nums[2][4] = 84;
// nums[2][5] = 99;//ArrayIndexOutOfBoundsException
// System.out.println(nums[2][5]);
//操作数据:数组名[下标][下标];
}
}
public class ArrayDemo02 {
public static void main(String[] args) {
// 二维数组的声明和分配空间合并写
//数据类型[][] 数组名=new 数据类型[数组长度][数组长度]; 或者 数据类型[][] 数组名=new 数据类型[数组长度][];
int[][] nums = new int[5][3];
int[][] nums2 = new int[3][];
String[][] strs = new String[6][5];
String[][] strs2 = new String[8][];
//二维数组的声明、分配空间、赋值合并写
//数据类型[][] 数组名 = new 数据类型[][]{
{数据1,数据2,...,数据n},{数据1,数据2,...,数据n},....,{数据1,数据2,...,数据n}}; 注意:new后面的两个[][]里都不能写数组长度
char[][] chars = new char[][]{
{'a','b','c'},{'c','d'},{'m'}};
//二维数组的声明、分配空间、赋值合并的简写方式
//数据类型[][] 数组名 = {
{数据1,数据2,...,数据n},{数据1,数据2,...,数据n},....,{数据1,数据2,...,数据n}};
double[][] nums3 = {
{2.5,5.5},{11.5,55.5},{99.9,88.8},{70.5,50}};
}
}
2、求一个3*3矩阵对角线元素之和
<提示>程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
import java.util.Scanner;
public class Subject02 {
public static void main(String[] args) {
//声明一个二维数组
int[][] num=new int[3][3];
//声明Scanner类
Scanner sc=new Scanner(System.in);
for (int i=0;i< num.length;i++){
for (int j=0;j<num[i].length;j++){
System.out.println("请输入第"+(i+1)+"行第"+(j+1)+"个数据");
num[i][j]=sc.nextInt();
}
System.out.println();
}
System.out.println("这个矩阵大致形状为:");
int sum=0;
for (int i=0;i<num.length;i++){
for (int j=0;j<num[i].length;j++){
if (i==j){
sum+=num[i][j];
}
System.out.print(num[i][j]+" ");
}
System.out.println();
}
System.out.println("对角线之和为:"+sum);
}
}
3、定义一个4行4列的二维数组,逐个从键盘输入值,然后将第1<