问题标题: 酷町堂:1134 分别求方阵两条对角线上的和

0
0
时梓繁
时梓繁
修练者
修练者

输入一个n*n阶方阵,分别求两条对角线上元素之和。(方阵为行数和列数相等的矩阵)

输入描述 Input Description

输入n+1行,第一行为一个数n(2=<n<=10),表示方阵的行数和列数,之后n行为这个方阵的元素。

输出描述 Output Description

输出两行,第一行为主对角线元素之和,第二行为副对角线元素之和。

样例输入 Sample Input

 

3
1 3 2
4 5 6
7 8 9

样例输出 Sample Output

 

15
14

数据范围及提示 Data Size & Hint

主对角线上的数即为1,5,9;副对角线上的数即为2,5,7。


0
0
0
贾文卓
贾文卓
高级光能
高级光能

我们先观察一下两条对角线上的数的行列号的规律,不难发现主对角线上的数的行号=列号,而副对角线上的数的行号+列号=n+1!

这样,即可写出程序:

int i,s1=0,s2=0;//s1记录主对角线数的和,s2记录副对角线数的和。
for(i=1;i<=n;i++)
{
    s1+=a[i][i];//累加。
    s2+=a[i][n+1-i];//累加。
}

 

0
0
陈宇飞
陈宇飞
高级守护
高级守护

核心代码: 

if(i==j)
{
sum=sum+a[i][j];
}

 

0
黄依成
黄依成
中级天翼
中级天翼
            if(i==j)
            {
                sum1+=a[i][j];
               }
               if(i+j==n+1)
            {
                sum2+=a[i][j];
            }
我要回答