问题标题: 1134

0
0
已解决
颜咏春
颜咏春
中级光能
中级光能

题目描述 Description

输入一个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。

提交记录:

#题号时间1Compile Error2017年12月22日 19:30


0
已采纳
陆麟瑞
陆麟瑞
资深天翼
资深天翼

这是主要代码,可以参考。

cin>>n;
    m=n;
    for(int i=1; i<=m; i++)
    {
        for(int j=1; j<=n; ++j)
        cin>>a[i][j];
    }
    int s=0,t=0;
    for(int i=1; i<=m; i++)
    {
        for(int j=1; j<=n; j++)
        {
        if(i==j) s+=a[i][j];//如果是从左上角到右下角的斜线中的数组元素
        if(i+j==n+1) t+=a[i][j];//如果是从右上角到做下角的斜线中的数组元素
    }
    }
    cout<<s<<endl;
    cout<<t<<endl;
0
朱宗晔
朱宗晔
初级光能
初级光能

核心部分 

e=a-1;
    f=0;
    for(int i=0;i<=a-1;i++)
    for(int j=0;j<=a-1;j++)
    cin>>d[i][j];
    for(int i=0;i<=a-1;i++)
    {
        b=b+d[f][e];
        c=c+d[f][f];
        e-=1;
        f+=1;
    }

 

0
0
0
朱苏婉
朱苏婉
中级守护
中级守护
if(n%2==0)
     { 
        for(int i=0;i<n;i++)
            sum1=sum1+a[i][i];
        for(int i=0;i<n;i++)
            sum2=sum2+a[i][n-i-1];
     }
     这只是其中一种
我要回答