题目:
求一个3x3的整形矩阵对角线元素之和。
解答:
我们先看下3x3的矩阵元素对角线的索引有什么特点。
对角线为:
然后,我们设定i和j分别作为行与列:
我们把这个二维数组所有元素都取出来的代码为两个循环,外层是i,内层是j:
//首先先定义一些变量,比如sum用于累积总和
int sum=0;
//再定义一个3x3的整形数组
int a[3][3]={1,2,3,4,5,6,7,8,9};
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
//求和代码
}
}
然后根据上图的逻辑,求和代码为:
if(i==j)
{
sum=sum+a[i][j];//比如a[0][0]、a[1][1]、a[2][2]
}
else if((i+j)==2)
{
sum=sum+a[i][j];//比如a[0][2]、a[2][0]
}
最终代码和效果如下:
当然,你非要写成最简单的:int sum=a[0][0]+a[0][2]+a[1][1]+a[2][0]+a[2][2];也是可以,但是这种方式如果矩阵增加后就会很难处理。也无法体现个人思辨能力。