【Java基础题型】矩阵的对角线求和

发布于:2024-04-11 ⋅ 阅读:(162) ⋅ 点赞:(0)

一、题目-矩阵

求一个3×3矩阵对角线元素之和。

输入格式

矩阵

输出格式

主对角线 副对角线 元素和

样例输入

1 2 3

1 1 1

3 2 1

样例输出

3 7

二、参考的知识

这里给大家送点英语单词,记得学习:

p r i m a r y.     adj.主要的;初级的

s e c o n d a r y.     adj.次要的;二级的

Diagonal.     n/adj. 对角线(的)

”嗨害嗨,我是主对角线

这个是 副对角线,名叫secondaryDiagonal

三、题解分析

(1)创建矩阵:

        这个类似于数组,二维的数组。

        int[ ][ ]  matrix = new int[ 3 ] [ 3 ];       //题目要求的3*3的矩阵

 提问 ! 那么如何像这样,动态创建一维数组呢?

        参考答案示例:

                // Scanner scan = new Scanner(System.in);

                // int  n  = scan.nextInt( );      //数组长度

                int[ ] 数组名 = new int[ n ];        //其中n要提前输入

(2)计算矩阵的副对角线的和:

   

完形填空 !要遍历(上图)副对角线的值,问号处应该填什么呢?

(其中matrix为创建的3*3的矩阵名称)

        for(  int i=0 ; i < 3 ; i++){

       System.out.print( matrix[ ? ][ ? ]+" ")

}

聪明的你,应该能想出来:

        答案是: i  和  2-i

  matrix [ i ][( 数组长度-1)-i ];

思考:二维矩阵为7*7的代码的主、副对角线,应该是什么呢?

四、我是代码

参考了chatGpt提供的帮助


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int[][] matrix = new int[3][3];
		
		//读取矩阵
		for( int i=0; i<3 ; i++) {
			for( int j=0 ; j<3 ;j++) {
				matrix[i][j] = scan.nextInt();
			}
		}
	
		//计算主对角线元素之和
		int primaryDiagonalSum=0;
		for( int i=0; i < 3; i++) {
			primaryDiagonalSum += matrix[i][i];
		}
		
		//计算副对角线元素之和
		int secondaryDiagonalSum = 0;
		for( int i=0; i<3 ; i++) {
			secondaryDiagonalSum += matrix[i][2-i];	
		}
		
		//输出结果
		System.out.println(primaryDiagonalSum+" "+secondaryDiagonalSum );
		
	}
}


网站公告

今日签到

点亮在社区的每一天
去签到