`

JAVA范例 五)数组---二维数组

阅读更多

 

二维数组

实例67 二维数组的创建与使用

public class TwoArray_01 {
	public static void main(String[] args) {
		int array[][] = new int[5][6];				// 定义一个5行6列的二维数组array
		int n = 1;
		for (int i = 0; i < array.length; i++) {		// 利用双重循环为数组元素赋值
			for (int j = 0; j < array[i].length; j++) {
				array[i][j] = n++;
			}
		}
										// 二维数组的输出
		System.out.println("二维数组中的数组元素如下:");
		for (int i = 0; i < array.length; i++) {		// 利用双重循环将二维数组中的元素依次输出
			for (int j = 0; j < array[i].length; j++) {
				System.out.print(" " + array[i][j]);
			}
			System.out.println();
		}
	}
}

 

实例68 矩阵转置

public class TwoArray_02 {
public static void main(String[] args) {
		int array[][] = { { 22, 18, 36 }, { 27, 34, 58 }, { 12, 51, 32 },
				{ 14, 52, 64 } };				// 创建一个4行3列的二维数组
		int brray[][] = new int[3][4];				// 创建一个3行4列的数组,用于接收转置后的矩阵
		System.out.println("原型矩阵如下:");
		for (int i = 0; i < array.length; i++) {		// 遍历array数组中的元素
			for (int j = 0; j < array[i].length; j++) {
				System.out.print(array[i][j] + " ");
			}
			System.out.println();
		}
		for (int i = 0; i < array.length; i++) {		// 此时的i是array数组的行,brray的列
			for (int j = 0; j < brray.length; j++) {	// 此时的j是array数组的列,brray的行
				brray[j][i] = array[i][j];		// 将array数组中的第i行j列的元素赋给brray数组中的j行i列
			}
		}
		System.out.println("\n转置后的矩阵如下:");
		for (int i = 0; i < brray.length; i++) {		// 遍历转置后brray数组中的元素
			for (int j = 0; j < brray[i].length; j++) {
				System.out.print(brray[i][j] + " ");
			}
			System.out.println();
		}
	}
}

 

实例69 奇数阶幻方

import java.util.Scanner;

public class TwoArray_03 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入~");
		int n = sc.nextInt();			//由键盘输入一个奇数
		if(n%2==0){				//判断输入的数字是否是奇数
			System.out.println("请输入奇数");
			return;
		}
		int array[][] = new int[n][n];		//创建一个n行n列的数组
		int a = n-1;				//获取最后一行的行下标
		int b = n/2;				//获取中间列的列下标
		for(int i=1;i<=n*n;i++){
			array[a++][b++]=i;		//给最后一行的中间的元素赋值为1
			if(i%n==0){			//判断当前i的值是否是n的倍数
				a=a-2;			//如果是则放在上行同列的位置上
				b=b-1;
			}else{				//否则放在下一行的下一列(右下方)
				a=a%n;
				b=b%n;
			}
		}
		System.out.println(n+"阶幻方如下:");
		for(int i=0;i<n;i++){			//将幻方输出
			for(int j=0;j<n;j++){
				System.out.print(" "+array[i][j]);
			}
			System.out.println();
		}
	}
}

 

实例70 求方阵对角线之和

public class TwoArray_04 {
	public static void main(String[] args) {
		int n = 5;							//表示n行n列
		int sum = 0;						//两条对线的总和
		int[][] array = getArray(n);				// 获取一个奇数阶方阵
		int diagonal1 = 0;					// 对角线1之和
		int diagonal2 = 0;					// 对角线2之和
		int j = array[0].length - 1;				// 获取数组列下标的最大值
		int k = 0;
		int m = 0;
		System.out.println("获得的数组如下:");
		for (int x = 0; x < n; x++) {				// 循环遍历输出array数组
			for (int y = 0; y < n; y++) {
				System.out.print(" " + array[x][y]);
			}
			System.out.println();
		}
		for (int i = 0; i < array.length; i++) {		// 求两条对角线之和
			diagonal1 += array[i][j--];			// 求第一条对角线之和
			diagonal2 += array[k++][m++];		// 求第二条对角线之和
		}
		if (n % 2 == 1) {						// 判断n是否为奇数
			sum = diagonal1 + diagonal2 - array[n / 2][n / 2];// 是奇数则减去相交的值
		} else {
			sum = diagonal1 + diagonal2;				// 不是则没有相交点,所以不必减去相交的值
		}
		System.out.println("\n两条对角线之和为:" + sum);
	}
	public static int[][] getArray(int n) {					// 获取一个n*n的方阵
		int[][] a = new int[n][n];
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				a[i][j] = i * j + 1;
			}
		}
		return a;
	}
}

 

实例71 矩阵的加法

public class TwoArray_07 {
	public static void showArray(int[][] arr) {			// 利用嵌套循环将二维数组中的每个元素输出
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr[i].length; j++) {
				System.out.print(" " + arr[i][j]);
			}
			System.out.println();
		}
	}
	public static void main(String[] args) {
		int a[][] = { { 12, 23, 4 }, { 10, 5, 14 }, { 10, 12, 32 },
				{ 12, 41, 78 } };			// 初始化的方式构造一个二维数组a
		int b[][] = { { 10, 3, 14 }, { 8, 13, 5 }, { 61, 10, 21 },
				{ 45, 56, 6 } };			// 初始化的方式构造一个二维数组b
		System.out.println("二维数组a中的数组元素值如下:");
		showArray(a); 					// 调用showArray方法,遍历二维数组a中的每个元素
		System.out.println("二维数组b中的数组元素值如下:");
		showArray(b);					// 调用showArray方法,遍历二维数组b中的每个元素
		System.out.println("矩阵减法运算的结果如下:");
		showArray(subtrationArray(a, b));	// 调用showArray方法, 显示矩阵减法运算结果
	}
	public static int[][] subtrationArray(int[][] a, int[][] b) { 			// 矩阵的减法运算
		if ((a.length != b.length) || (a[0].length != b[0].length)) { 	// 判断矩阵行数列数是否相等
			System.out.println("两个矩阵大小不一");
			return null;
		} else {
			int[][] c = new int[a.length][a[0].length];
			for (int i = 0; i < a.length; i++) { 					// 依次循环行数
				for (int j = 0; j < a[0].length; j++) { 			// 依次循环列数
					c[i][j] = a[i][j] - b[i][j]; 					// 两个矩阵相减
				}
			}
			return c; 									// 返回阵减法运算结果的数组c
		}
	}
}

 

实例72 矩阵的减法

public class TwoArray_08 {
	public static int[][] addArray(int[][] a, int[][] b) {
		if ((a.length != b.length) || (a[0].length != b[0].length)) { 	// 判断矩阵行数列数是否相等
			System.out.println("两个矩阵大小不一");
			return null;
		} else {
			int[][] c = new int[a.length][a[0].length];
			for (int i = 0; i < a.length; i++) { 					// 依次循环行数
				for (int j = 0; j < a[0].length; j++) { 			// 依次循环列数
					c[i][j] = a[i][j] + b[i][j]; 				// 两个矩阵相加
				}
			}
			return c; 							// 返回阵加法运算结果的数组c
		}
	}
	public static void showArray(int[][] arr) {			// 利用嵌套循环将二维数组中的每个元素输出
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr[i].length; j++) {
				System.out.print(" " + arr[i][j]);
			}
			System.out.println();
		}
	}
	public static void main(String[] args) {
		int a[][] = { { 12, 23, 4 }, { 10, 5, 14 }, { 10, 12, 32 },
				{ 12, 41, 78 } };				// 初始化的方式构造一个二维数组a
		int b[][] = { { 10, 3, 14 }, { 8, 13, 5 }, { 61, 10, 21 },
				{ 45, 56, 6 } };				// 初始化的方式构造一个二维数组b
		System.out.println("二维数组a中的数组元素值如下:");
		showArray(a); 						// 调用showArray方法,遍历二维数组a中的每个元素
		System.out.println("二维数组b中的数组元素值如下:");
		showArray(b);						// 调用showArray方法,遍历二维数组b中的每个元素
		System.out.println("矩阵加法运算的结果如下:");
		showArray(addArray(a, b));			// 调用showArray方法, 显示矩阵加法运算结果
	}
}

 

实例73 快递报价单

public class TwoArray_10 {
	public static void main(String[] args) {
		int weight = 1;				// 定义表示货物的重量的变量
		int path = 50;				// 定义路途的变量
		int price = 5;				// 定义表示价格的变量
		int Overweightprice = 2;		// 定义超重的附加费
		int n = 0, m = 0;				// 递增变量
		int[][] details = new int[10][5];	// 创建一个数组,装有货物重量在1~5千克,路程在50~5000公里内的所有快递价格
		for (int i = 0; i < details.length; i++) {					// 行表示路程
			details[i][0] = price;							// 为每个路程段赋不超重时的快递费
			for (int j = 1; j < details[i].length; j++) {			// 列表示超重的重量数,单位为千克
				details[i][j] = details[i][0] + j * Overweightprice;	//算出每超重j千克,应付的快递费
			}
			price++;
			Overweightprice++;
		}
		System.out.println("货物重量在1~5千克,路程在50~5000公里内的所有收费明细如下:");
		for (int i = 0; i < details.length; i++) {					// 行表示路程
			m = 0;
			System.out.println("路程为" + (path + (n * path)) + "公里");
			for (int j = 1; j < details[i].length; j += 2) {			// 列表示超重的重量数,单位为千克
				System.out.println("重量为" + (weight + (m * weight))
						+ "千克,其快递费为:" + details[i][j - 1] + "   " + "重量为"
						+ (weight + ((m + 1) * weight)) + "千克,其快递费为:"
						+ details[i][j]);
				m = m + 2;
			}
			n++;
			if (details[i].length % 2 == 1) {
				System.out.println("重量为" + (weight + (m * weight))
						+ "千克,其快递费为:" + details[i][details[i].length - 1]);
			}
		}
	}
}

 

 

分享到:
评论

相关推荐

    JAVA中的二维数组

    for(int row[] :arr) //此时不难看出,二维数组可以看作是每个元素都是一个一维数组的一维数组 { for(int item: row) { System.out.print(item+ " "); } System.out.println(); } 补充: //...

    java范例开发大全(pdf&源码)

    实例67 二维数组的创建与使用 92 实例68 矩阵转置 93 实例69 奇数阶幻方 94 实例70 求方阵对角线之和 96 实例71 矩阵的加法 97 实例72 矩阵的减法 98 实例73 快递报价单 99 5.3 数组的排序 101 实例74 冒泡排序法 ...

    java范例开发大全源代码

     实例67 二维数组的创建与使用 92  实例68 矩阵转置 93  实例69 奇数阶幻方 94  实例70 求方阵对角线之和 96  实例71 矩阵的加法 97  实例72 矩阵的减法 98  实例73 快递报价单 99  5.3 数组...

    java范例开发大全

    实例67 二维数组的创建与使用 92 实例68 矩阵转置 93 实例69 奇数阶幻方 94 实例70 求方阵对角线之和 96 实例71 矩阵的加法 97 实例72 矩阵的减法 98 实例73 快递报价单 99 5.3 数组的排序 101 实例74 冒泡排序法 ...

    Java范例开发大全 (源程序)

     实例67 二维数组的创建与使用 92  实例68 矩阵转置 93  实例69 奇数阶幻方 94  实例70 求方阵对角线之和 96  实例71 矩阵的加法 97  实例72 矩阵的减法 98  实例73 快递报价单 99  5.3 数组的排序 ...

    Java范例开发大全(全书源程序)

    Java范例开发大全(全书源程序),目录如下: 第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境...

    Java开发技术大全(500个源代码).

    assignTwoDime.java 为二维数组赋值 getMaxElem.java 获取数组中的最大元素 incCapicity.java 演示StingBuffer的容量增长 SortDemo.java 排序示例 travelTwoDime.java 遍历二维数组 traversing.java 遍历一维...

    JAVA上百实例源码以及开源项目源代码

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    JAVA上百实例源码以及开源项目

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    Google Android SDK开发范例大全(完整版)共4个...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    Google Android SDK开发范例大全(完整版)共4个...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...

    Google Android SDK开发范例大全的目录

    目录 第1章 了解.深入.动手做. ...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    Google Android SDK开发范例大全(完整版)共4个...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    Google Android SDK开发范例大全(完整版) ...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...

    Google Android SDK 开发范例大全01

    Google Android SDK开发范例大全 ...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...

    Google Android SDK 开发范例大全02

    Google Android SDK开发范例大全 ...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...

    Google Android sdk 开发范例大全 部分章节代码

    好东西与大家同享! Google Android SDK开发范例...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...

    Google+Android+SDK开发范例大全

    4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton选择特效 4.13 具自动提示功能的菜单——AutoCompleteTextView与数组 4.14 数字及模拟小时钟设计——AnalogClock与...

Global site tag (gtag.js) - Google Analytics