Java基本功练习八(多维数组[二维、三维、模拟评卷系统、九宫格验证])

本文通过五个示例深入探讨Java中多维数组的应用,包括二维数组的基本操作、寻找二维空间距离最短的点对、三维数组猜生日游戏、模拟评卷系统计算学生成绩排名以及九宫格验证算法。每个示例都有详细的运行效果展示和源代码解析。

       学习完一维数组,再进行多维数组的学习会更加容易。多维数组可以解决更为复杂的问题,在用法上与一维数组也有很多类似的地方。下面先从二维数组的基本用法展示开始讲解,然后再进行升级。

       示例一:二维数组的基本操作。

运行效果如图所示:

实现的源代码如下:

package Blog;

import java.util.Scanner;

public class blogTryProject {
	//二维数组基本操作
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int[][] matrix = new int[5][5];
		System.out.println(matrix.length+" rows and "
				+matrix[0].length+" columns");
		//随机产生5*5数组
		for(int row = 0;row < matrix.length;row++){
			for(int columns = 0;columns < matrix[row].length;columns++){
				matrix[row][columns] = (int)(Math.random()*20);
				System.out.printf("%3d ",matrix[row][columns]);
			}
			System.out.println();
		}
		//按列求和
		for(int columns = 0;columns < matrix[0].length;columns++){
			int total = 0;
			for(int row = 0;row < matrix.length;row++)
				total += matrix[row][columns];
			System.out.println("Sum for column "+columns+" is "+total);
		}
		//按行求和
		for(int row = 0;row < matrix.length;row++){
			int total = 0;
			for(int columns = 0;columns < matrix[row].length;columns++)
				total += matrix[row][columns];
			System.out.println("Sum for row "+row+" is "+total);
		}
		//求最大的一行
		int maxSum = 0;
		int indexOfMax = 0;
		for(int columns = 0;columns < matrix[0].length;columns++){
			maxSum += matrix[0][columns];
		}
		for(int row = 1;row < matrix.length;row++){
			int maxThisRow = 0;
			for(int columns = 0;columns < matrix[0].length;columns++)
				maxThisRow += matrix[row][columns];
			if(maxThisRow > maxSum){
				maxSum = maxThisRow;
				indexOfMax = row;
			}
		}
		System.out.println("Row "+indexOfMax+" has the maximun sum of "+maxSum);
		//随意打乱数组的元素
		for(int row = 1;row < matrix.length;row++){
			for(int columns = 0;columns < matrix[0].length;columns++){
				int i = (int)(Math.random()*matrix.length);
				int j = (int)(Math.random()*matrix[i].length);
				int temp = matrix[row][columns];
				matrix[row][columns] = matrix[i][j];
				matrix[i][j] = matrix[row][columns];
			}
		}
		//打印打乱后的数组元素
		f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值