求矩阵的主对角线之和

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Triangle{
public static void main(String[] args)throws IOException{
int n=0;
System.out.print("enter matrix‘s dimension and content:");
Scanner reader=new Scanner(System.in);
n=reader.nextInt(); //n is the size of the matrix

String[] s=new String[n];
Scanner[] scan=new Scanner[n];
long[][] a=new long[n][n];
long sum=0;
BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));//BufferedReader包装字符流,将其存入缓存,可提高读的效率
for(int i=0;i<n;i++){
s[i]=stdin.readLine();
}
System.out.println("your matrix:");
for(int i=0;i<n;i++)
{
scan[i]=new Scanner(s[i]);//enter the marix number to scan[i]
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
a[i][j]=scan[i].nextLong();//save the matrix number to a[][]
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i==j)
{
sum=sum+a[i][j];
}
System.out.print(a[i][j]+"\t");
}
System.out.println("");

}
System.out.println("matrix‘s sum of the main diagonal:"+sum);
}
}

时间: 2024-12-29 04:17:16

求矩阵的主对角线之和的相关文章

习题7-4 求矩阵各行元素之和 (15分)

本题要求编写程序,求一个给定的m×n矩阵各行元素之和. 输入格式: 输入第一行给出两个正整数m和n(1).随后m行,每行给出n个整数,其间 以空格分隔. 输出格式: 每行输出对应矩阵行元素之和. 输入样例: 3 2 6 3 1 -8 3 12 输出样例: 9 -7 15 #include<stdio.h> int main() { int i,j; int n,m; int sum=0; scanf("%d%d",&m,&n);//m表示行,n表示一行n个整

JAVA 基础编程练习题29 【程序 29 求矩阵对角线之和】

29 [程序 29 求矩阵对角线之和] 题目:求一个 3*3 矩阵对角线元素之和 程序分析:利用双重 for 循环控制输入二维数组,再将 a[i][i]累加后输出. package cskaoyan; public class cskaoyan29 { @org.junit.Test public void diagonal() { java.util.Scanner in = new java.util.Scanner(System.in); int[][] arr = new int[3][

Python练习题 028:求3*3矩阵对角线数字之和

[Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得代码太啰嗦.矩阵这东西,应该有个很现成的方法可以直接计算才对-- 啰嗦代码如下: str = input('请输入9个数字,用空格隔开,以形成3*3矩阵:') n = [int(i) for i in str.split(' ')] #获取9个数字 mx = [] #存储矩阵 for i in ra

数组-09. 求矩阵的局部极大值

数组-09. 求矩阵的局部极大值(15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 徐镜春(浙江大学) 给定M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的局部极大值.本题要求给定矩阵的全部局部极大值及其所在的位置. 输入格式: 输入在第1行中给出矩阵A的行数M和列数N(3<=M,N<=20):最后M行,每行给出A在该行的N个元素的值.数字间以空格分隔.

hdu 4888 最大流给出行列和求矩阵

第一步,考虑如何求是否有解.使用网络流求解,每一行和每一列分别对应一个点,加上源点和汇点一共有N+M+2个点.有三类边: 1. 源点 -> 每一行对应的点,流量限制为该行的和 2. 每一行对应的点 -> 每一列对应的点,流量限制为 K 3. 每一列对应的点 -> 汇点,流量限制为该列的和 对上图做最大流,若源点出发的边和到达汇点的边全都满流,则有解,否则无解.若要求构造方案,则 (i,j) 对应的整数就是行 i–> 列 j 的流量. 第二步,考虑解是否唯一.显然,解唯一的充分必要条

练习3:将矩阵的行列之和分别存入两个数组

如题,矩阵行列之和放入另外另个数组,并且要求输出时,每行之后紧跟行的和,列下面紧跟列之和 具体代码如下: 1 #include<iostream> 2 using namespace std; 3 4 int main() 5 { 6 int i, j; 7 int A[5][5] = { 23, 45, 6, 1, -3, 8 4, 5, 233, 456, 0, 9 3, 56, 78, -356, 5, 10 6, 777, 8, 89, 9, 11 3, 6, 8, 9, 90 };

环形数组求最大子数组之和

环形数组求最大子数组之和: 实验要求: 随机产生一个整形数组,假设首尾相连为环形,求其相连的字数组的和,并输出子数组的元素. 设计思路: 因为是环形,所以要考虑自设的头尾的情况,在此分为两大类考虑,一种为数组中存在正数情况,一种为全部为负数的情况: 在存在正数的情况中又可分为三种情况,一种为全部为正数的情况,一种为自设的头元素为正数,最后一种为自设的头元素为负数.根据这几种情况分类进行实现. 在实现过程中,对数组元素从头到尾进行遍历,如果遇到正数即用和相加,直到相邻的下一个为负数,即存放目前该最

HDU 1542 Atlantis (线段树求矩阵覆盖面积)

题意:给你n个矩阵求覆盖面积. 思路:看了别人的结题报告 给定一个矩形的左下角坐标和右上角坐标分别为:(x1,y1).(x2,y2),对这样的一个矩形,我们构造两条线段,一条定位在x1,它在y坐标的区间是[y1,y2],并且给定一个cover域值为1:另一条线段定位在x2,区间一样是[y1,y2],给定它一个cover值为-1.根据这样的方法对每个矩形都构造两个线段,最后将所有的线段根据所定位的x从左到右进行排序 #include <iostream> #include <stdio.h

Armadillo之求矩阵的逆(inverse)

求一个矩阵的逆(inverse or multiplicative inverse)使用矩阵的.i()方法或用inv()函数 m.i() //返回m的逆 1 若m不是方正的(square),则函数抛出std::logic_error异常. 2 如果m是奇异的(singular),则输出的矩阵将被重置,且抛出std::runtime_error异常 inv(m)   //返回m的逆 inv(A,m) //A被设为m的逆 1 若m不是方正的(square),则函数抛出std::logic_error