C语言萌新__矩阵对角线求和__收获

430 阅读1分钟

矩阵对角线求和

问题描述:

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

image.png

问题分析

·本题考察度二维数组的理解。

·首先二维数组的定义:类型说明符 [行数][列数]

*int a[3][4];``/*定义一个整形二维数组a,有3行4列共12个元素分别为:

a[0][0] a[0][1] a[0][2] a[0][3]

a[1][0] a[1][1] a[1][2] a[1][3]

a[2][0] a[2][1] a[2][2] a[2][3]

*/*`

求3*3矩阵对角线元素之和其实就是a[0][0]+a[1][1]+a[2][2]或者a[0][2]+a[1][1]+a[2][0].

若行为x,列为y.观察可得第一种对角线x==y,第二种对角线x+y==2.

#include<stdio.h>
int main()
{
	int a[3][3], n = 0, m = 0;
	for (int x=0;x<3;x++)
		for (int y = 0; y < 3; y++)
		{
			scanf("%d", &a[x][y]);
			if (x == y)
				n += a[x][y];
			if (x + y == 2)
				m += a[x][y];
		}
	printf("%d %d", n, m);
	return 0;
}

}

问题解决:

不过在敲出代码后我自己跑了一下,在输入数组元素的时候记得是9个元素。每个元素你要用空格隔出来,123456789是不行的,得要1 2 3 4 5 6 7 8 9才可以。虽说一般不会犯这个毛病,但我自己确确实实犯了。所以敲下这篇文章警醒自己。

)$70K6J0(~{E()(%QAQ80C7.png —————————————————————————————————————

image.png