加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何循环矩阵让对角线上的数字具有高优先级?

发布时间:2020-12-16 09:54:52 所属栏目:百科 来源:网络整理
导读:我正在研究一个需要在二维数组(矩阵)中找到一定数量的项目.矩阵顺序的访问顺序是这样的(4 * 4矩阵).现在我站在0位.等价,我想首先以对角线方式访问矩阵元素. 0 2 7 143 1 5 128 6 4 1015 13 11 9 另外,如何在c中打破两个嵌套循环而不使用goto语句. 解决方法
我正在研究一个需要在二维数组(矩阵)中找到一定数量的项目.矩阵顺序的访问顺序是这样的(4 * 4矩阵).现在我站在0位.等价,我想首先以对角线方式访问矩阵元素.

0  2  7  14
3  1  5  12
8  6  4  10
15 13 11 9

另外,如何在c中打破两个嵌套循环而不使用goto语句.

解决方法

以下代码将遍历任意大小的方阵,优先级在对角线上

#define SIZE 4

static int test[SIZE][SIZE] =
{
    {   0,2,7,14  },{   3,1,5,12  },{   8,6,4,10  },{  15,13,11,9  }
};

int main( void )
{
   int diagonal,delta;

   for ( diagonal = 0; diagonal < SIZE; diagonal++ )
   {
       cout << test[diagonal][diagonal] << endl;

       for ( delta = 1; delta <= diagonal; delta++ )
       {
           cout << test[diagonal-delta][diagonal] << endl;
           cout << test[diagonal][diagonal-delta] << endl;
       }
   }
}

这是一种在没有goto的情况下打破嵌套循环的方法

done = false;
for ( i = 0; i < 10; i++ )
{
    for ( j = 0; j < 10; j++ )
    {
        if ( some_condition_is_met )
        {
            done = true;
            break;
        }
    }
    if ( done )
        break;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读