矩阵对角线求和
问题描述:
求一个3×3矩阵对角线元素之和。
问题分析
·本题考察度二维数组的理解。
·首先二维数组的定义:类型说明符 [行数][列数]
*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才可以。虽说一般不会犯这个毛病,但我自己确确实实犯了。所以敲下这篇文章警醒自己。
—————————————————————————————————————