`

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范例开发大全》.pdf

    5. **数组操作**:一维数组和二维数组的创建、遍历、查找最小值、复制、合并、去重等操作都有所涵盖。还有矩阵的转置、加减运算以及奇偶分组等实例。 6. **字符串处理**:字符串类的使用,如charAt()、比较、解码、...

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

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

    Java灵感编程范例源代码21-40

    8. 数组:Java支持一维、二维及多维数组,示例可能会包含创建、遍历和操作数组的方法。 9. 集合框架:Java集合框架包括List、Set、Queue等接口,以及ArrayList、LinkedList、HashSet、HashMap等实现。示例可能涉及...

    java范例开发大全源代码

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

    《Java范例开发大全》.docx

    5. **数组**:一维和二维数组的创建、访问、遍历、排序、合并、去重等操作。 6. **字符串操作**:使用String类的方法进行字符串比较、查找、替换、分割、截取等。 7. **集合框架**:虽然未直接提及,但作为Java的...

    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 遍历一维...

    李兴华j2se不分的所有笔记

    - 数组的定义及使用笔记:深入解析了数组的创建、初始化和使用,包括一维数组、多维数组以及数组的操作。 - 方法的声明及使用笔记:介绍了方法的定义、参数传递、返回值以及重载的概念,帮助理解方法在程序中的...

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

    Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...

    177个c程式范例的光碟 (windows)

    3. **数组**:学习如何声明、初始化和操作数组,包括一维、二维数组,以及数组与函数的交互。 4. **指针**:C语言的精髓之一,范例会演示指针的声明、赋值、解引用以及如何通过指针进行内存操作。 5. **结构体**:...

    俄罗斯方块java源代码

    5. 数据结构:如二维数组用于表示游戏板,存储当前方块的位置和状态。 6. 循环和条件判断:实现游戏逻辑,如方块的下落、碰撞检测、消除行等。 7. 状态管理:跟踪游戏状态,如暂停、游戏结束、新游戏等。 8. 错误...

    200个c程式范例的光碟 (Templates)

    2. **数组与指针**:一维、二维数组,指针的使用,指针与数组的关系,动态内存分配。 3. **结构体与联合**:自定义数据类型,结构体内存对齐,指针指向结构体。 4. **函数指针**:使用函数指针作为参数,回调函数...

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

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

    android-image-filter-ndk,使用android ndk在c中处理位图的android示例项目.zip

    2. 位图数据转换:在C/C++中,需要将Bitmap的像素数据转换成可以直接操作的数组,如二维数组或一维数组。然后,通过对每个像素值的运算,实现图像过滤。 四、图像过滤算法 1. 基本滤镜:例如灰度滤镜,只需将每个...

    毕设参考-基于Java ME无线网络移动端的俄罗斯方块游戏的实现(论文+源码).zip

    在Java ME中,这些功能需要通过编程实现,通常使用二维数组来表示游戏网格,并结合定时器控制方块的运动。 3. **图形用户界面**:Java ME中的MIDP库提供了轻量级用户界面组件,如Canvas类,可以自定义绘图。开发者...

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

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

    100个Java经典编程实例源代码

    4. **数组与集合**:演示如何使用一维、二维数组,以及ArrayList、LinkedList、HashSet、HashMap等集合框架的使用。 5. **IO流**:包括文件读写、字符流、字节流、缓冲流、对象序列化等操作,帮助开发者掌握数据...

Global site tag (gtag.js) - Google Analytics