这篇文章包括多维数组的定义、多维数组的几种初始化方法、以及按列求和按行求和的实例计算。这些是我上课记下来的,比较基础,对于初学者应该是有用的,如果感兴趣就认真的看下去吧。
多维数组学习一java
package duoweishuzu;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 定义一个数组
int[][] matrix = new int[5][5];
int sum = 0;
// 用输入值初始化数组
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
matrix[i][j] = input.nextInt();
}
}
// 输出数组
System.out.println("显示表格:");
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.printf("%d ", matrix[i][j]);
}
System.out.println("");
}
// 用随机数初始化数组,这里的随机值是0~100之间
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
matrix[i][j] = (int) (Math.random() * 100);
}
}
// 按行求和
System.out.println("显示表格:");
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.printf("%3d ", matrix[i][j]);
sum += matrix[i][j];
}
System.out.println("和:" + sum);
sum = 0;
}
/*
* 按列求和,[0,0],[1,0],[2,0],[3,0]... 保持列不变,行变,循环的时候内外循环调换
*/
for (int j = 0; j < matrix.length; j++) {
for (int i = 0; i < matrix.length; i++) {
sum += matrix[i][j];
}
System.out.printf("和:%4d ", sum);
sum = 0;
}
// 求总合
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
sum += matrix[i][j];
}
}
System.out.println("总和:" + sum);
// 求出哪一行的和最大
int max = 0;
int index = 0;
for (int i = 0; i < matrix[0].length; i++) {
max += matrix[0][i];
}
for (int i = 1; i < matrix.length; i++) {
int sum1 = 0;
for (int j = 0; j < matrix[i].length; j++) {
sum1 += matrix[i][j];
}
if (max < sum1) {
max = sum1;
index = i;
}
}
System.out.println("第" + (index + 1) + "行最大" + "和为" + max);
}
}