标题:求二维数组对角线的值递增编法
只看楼主
悠闲的紫
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-13
 问题点数:0 回复次数:12 
求二维数组对角线的值递增编法
设有一二维数组
int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
a00 (1)   a10 (5)   a20 (9)   a30 (13)
a01 (2)   a11 (6)   a21 (10)  a31 (14)
a02 (3)   a12 (7)   a22 (11)  a32 (15)
a03 (4)   a13 (8)   a23 (12)  a33 (16)

用递增求 a[0][3] + a[1][2] + a[2][1] + a[3][0]
的值怎么表示啊?

[[it] 本帖最后由 悠闲的紫 于 2008-10-29 16:20 编辑 [/it]]
搜索更多相关主题的帖子: 对角线 递增 
2008-10-24 09:58
hoodlum1980
Rank: 2
来 自:浙江大学
等 级:论坛游民
威 望:2
帖 子:289
专家分:23
注 册:2008-2-24
得分:0 
sum=0;
for(i=0;i<n;i++)
   sum+=a[i][n-1-i];
2008-10-25 01:25
悠闲的紫
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-13
得分:0 
int i,j=0,sum=0;
for(i=0;i<4;i++)
{
    for(;j<4-i;)
    {
        sum+=a[i][j-1];
        break;
    }
    continue;
}

这样写对不对啊?
用break结束后,跳出for(;j<4-i;)循环后,j的值在下一轮发生改变吗?
用嵌套for循环的方法那怎么写呢?

把知识都和我说
2008-10-25 16:22
悠闲的紫
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-10-13
得分:0 
先谢谢二楼大大,那个方法很好,
但好象不是递增~~~
那个我说的是函数调用函数本身那
种,不是变量调用变量的方式。

开始没表达好,先说声对不起.

另经过上段for嵌套后,我觉得我对for
掌握的也不行,所以请高人给予指点.

[[it] 本帖最后由 悠闲的紫 于 2008-10-29 16:22 编辑 [/it]]

把知识都和我说
2008-10-25 16:35
onlygxj
Rank: 1
来 自:广西大学
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-10-18
得分:0 
int i,j=0,sum=0;
for(i=0;i<4;i++)
{
    for(;j<4-i;)
    {
        sum+=a[i][j-1];
        break;
    }
    continue;
}
第二个for循环开始j=0,则sum+=a[0][-1].错误!
2008-10-25 22:59
zyzwlh
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-5-17
得分:0 
#include <stdio.h>
void main()
{
    int  a[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
    int  i,j,sum=0;
    for (i=0;i<=3;i++)
       for (j=0;j<=3;j++)
          if ((i+j)==3)
            {
                sum=sum+a[i][j];
            }
    printf("sum=%d\n",sum);
}
2008-10-26 16:04
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
得分:0 
递增 编码??还是 递归?

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-10-26 17:20
李木子
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-10-3
得分:0 
我也来学学!

因为有你们,我的世界才这样美好!
2008-10-26 17:27
牧人
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2008-10-22
得分:0 
int i,j,sum;
    int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
        sum=0;
        for (i=0;i<4;i++)
        {
            for(j=0;j<4;j++)
            {
                if(i==j||i+j==4)
                {
                    sum+=a[i][j];
            
                }            
            }
        }
    printf("%d\n",sum);





你的意思是求一组二维数字的对角线之和;
2008-10-26 20:20
牧人
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2008-10-22
得分:0 
int i,j,sum;
    int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
        sum=0;
        for (i=0;i<4;i++)
        {
            for(j=0;j<4;j++)
            {
                if(i==j||i+j==4)
                {
                    sum+=a[i][j];
            
                }            
            }
        }
    printf("%d\n",sum);



不好意思啊 !!
上面少写了一组
2008-10-26 20:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-240256-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.249441 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved