问题标题: 酷町堂: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。

 

 

 

 

求各位帮助


0
已采纳
高亮节
高亮节
资深守护
资深守护

用循环判断对角线上的数字;

记录,相加

1
马佳滢
马佳滢
新手天翼
新手天翼

hello!

%100品质保证, 

 整型 a[10][10],n,m赋初始值0,j1赋初始值0;
    输入n;
    循环(整型i从1循环到n){
        循环(整型j从1循环到n){
            输入a[i][j];
            如果(i等于j){
                j1加等于a[i][j]; 
            }如果(i加j等于n加1){
                m加等于a[i][j];
            }
        }
    }输出 j1 换行 m;返回值 0;

如果这个无法使你AC(做对),再等一会(半个小时吧),会有比较多的一些人来帮你解答。

0
0
邵逸儒
邵逸儒
中级天翼
中级天翼
    定义 a[101][101],n,s=0,d=0;
    输入n;
    循环(int i=0;i<n;i++)
    {
        循环(int j=0;j<n;j++)
        输入a[i][j];
    }
    循环(int i=0;i<n;i++)
    {
        定义 j=i;
        s+=a[i][j];
    }
    循环(int i=0,j=n-1;i<n,j>=0;i++,j--)
    {
        d+=a[i][j];
    }
    输出s<<endl<<d;

AC

0
0
栾峻岩
栾峻岩
初级天翼
初级天翼
 for (从1到n,i)
    {
        for (从1到n,j)
        {
            if (i==j)
                sum+=s[i][j];
            if ((i+j)==(n+1)) 
                num+=s[i][j]; 

        }
    }

仔细研究一下方阵,即可发现这个道理。要用双重循环做哦!(数组是二维数组,定义大一点,输入也是双重循环,最后输出num和sum,别忘了num和sum之间要有空格哦!)

0
时梓繁
时梓繁
修练者
修练者
    int a[101][101],n,s=0,d=0;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        cin>>a[i][j];
    }
    for(int i=0;i<n;i++)
    {
        int j=i;
        s+=a[i][j];
    }
    for(int i=0,j=n-1;i<n,j>=0;i++,j--)
    {
        d+=a[i][j];
    }
    cout<<s<<endl<<d;
    return 0;
}
0
我要回答