求数组对角线之和 着急,坐等回答。

来源:6-11 多维数组的遍历

qq_就此别过_0

2015-07-29 14:18

http://img.mukewang.com/55b86f640001976703610311.jpg   这里i%2==0&&j%2==0;
                                                                                             i可以是0,1,2;

                                                                                             j也可以是0,1,2;

                                                                                             这样子根本不是求数组对角线的和啊

写回答 关注

2回答

  • Perona
    2015-07-29 23:16:49
    已采纳

    二维数组是:int arr[3][3]={{1,2,3},{4,5,6},{7,8,9}};

    画图大致如下:

    1                       2                   3

    [0][0]            [0][1]                [0][2]

    4                       5                   6

    [1][0]            [1][1]               [1][2]

    7                      8                     9

    [2][0]           [2][1]                [2][2]

    这里有两条对角线,一条为左上至右下,对应数组中的数为1,5,9。

    另一条为右上至左下,对应数组中的数为3,5,7。

    相加应该是:1+5+9+3+7=25

    现在我们研究下对角线的坐标,分别是[0][0]、[1][1]、[2][2]、[0][2]、[1][1]、[2][0]

    发现没有,这些坐标x,y相加的值更好能被2整除,那么判断条件是不是就知道怎么写了。即取模运算:(i+j)%2==0

    遍历数组知道怎么遍历吧,那么在遍历数组的循环里面加上这if判断即可。

    参考代码:

    #include <stdio.h>
    int main()
    {
        int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
        int i,j;
        int sum=0;
        for(i=0;i<3;i++)
        {
           for(j=0;j<3;j++)
           {
               if((i+j)%2==0)
               sum+=arr[i][j];
           }
        }
        printf("对角线元素之和是:%d\n",sum);
        return 0;    
    }


    Perona 回复qq_就此别...

    不客气

    2015-07-30 11:32:32

    共 2 条回复 >

  • lucifer2
    2015-07-29 18:01:40
    #include<stdio.h>
    int main()
    {
        int arr[3][3]={{1,2,3},{4,5,6},{7,8,9}};
        int i,j;
        int sum=0;
        for(i=0;i<3;i++)
            for(j=0;j<3;j++)
                if(i==j)
                    sum+=arr[i][j];
        printf("对角线元素之和是:%d\n",sum);
        return o;
    }

    qq_就此别...

    这个答案算下来是15,只是一条主或副对角线的元素相加的

    2015-07-29 20:30:46

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926025 学习 · 20793 问题

查看课程

相似问题