java题目:求一个3*3矩阵对角线元素之和

java题目:求一个3*3矩阵对角线元素之和,第1张

假设我们有一个3x3的矩阵`matrix`,可以通过以下代码求其对角线元素之和:

```

int sum = 0// 初始化对角线元素之和为0

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

sum += matrix[i][i] // 累加左上到右下对角线元素

sum += matrix[i][2 - i] // 累加右上到左下对角线元素

}

```

在这个示例中,我们使用了一个循环来遍历矩阵的对角线元素。具体来说,我们累加了矩阵左上角到右下角和右上角到左下角两个方向冲举亏上答凯的对角线元素。

首先,我们从左上角到右下角遍历主对角线上的元素,即矩阵第一行第一列、第二行第二列、第三行第三列的元素。由于这些元素在矩阵中的索引都满足`rowIndex == columnIndex`的条件,因此我们可以使用`matrix[i][i]`来获取它们,然后将其添加到对角线元素之和中。

接下来,我们从右上角到左下角遍历副对角线上的元素,即矩阵第一行第三列、第二行第二列、第三行第一列的元素。由于这些元素在矩阵中的索散神引满足`rowIndex + columnIndex == 2`的条件,因此我们可以使用`matrix[i][2 - i]`来获取它们,然后将其添加到对角线元素之和中。

最终,我们得到的`sum`就是矩阵的对角线元素之和。

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

要求(1)建立一个矩阵类arr

(2)尽量使用面颤埋亏向对象、实现封装

解析:

封装性不用担心,java正是以其良好的封装性着称。

小可献丑了:

没有仔细调试,按照提示输入数据

每一行(Row)数据用空茄神格隔开,结束后回车

import java.io.*

import java.util.*

public class Arrtest{

public static void main(String args[]){

try{

System.out.print("set the row of the arr:\n")

BufferedReader in=new BufferedReader(

new InputStreamReader(System.in))

String row=in.readLine()

System.out.print("set the line of the arr:\n")

BufferedReader in2=new BufferedReader(

new InputStreamReader(System.in))

String line=in2.readLine()

int R=Integer.parseInt(row)

int L=Integer.parseInt(line)

Arr arr=new Arr()

System.out.print("Great the first arr:\n")

double arr1[][]=arr.greatArr(R,L)

System.out.print("Great the second arr:\n")

double arr2[][]=arr.greatArr(R,L)

arr.showArr(arr.addArr(arr1,arr2,R,L),R,L)

}catch(Exception e){e.getMessage()}

}

}

class Arr {

double[][] greatArr(int row,int line){

double arr[][]=new double[row][line]

for(int i=0i<rowi++){

try{

System.out.print("input the row("+(i+1)+") numbers:\n")

BufferedReader in=new BufferedReader(

new InputStreamReader(System.in))

String s=in.readLine()

StringTokenizer s_part=new StringTokenizer(s," "液肆)

for(int j=0j<linej++){

arr[i][j]=Double.parseDouble(s_part.nextToken())

}

}catch(Exception e){e.getMessage()}

}

return arr

}

double[][] addArr(double[][] arr1,double[][] arr2,int row,int line){

for(int i=0i<rowi++){

for(int j=0j<linej++){

arr1[i][j]=arr1[i][j]+arr2[i][j]

}

}

return arr1

}

void showArr(double[][] arr,int row,int line){

System.out.print("the result:\r\n")

for(int i=0i<rowi++){

for(int j=0j<linej++){

System.out.print(arr[i][j]+" ")

}

System.out.print("\r\n")

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12538286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存