李智楠帅气图片:关于上(下)三角矩阵按对角线初始化方法(c++)

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 20:07:50
例如
a[1][1],a[2][2],a[3][3],...,a[n][n]
a[1][2],a[2][3],a[3][4],...,a[n-1][n]
...
a[1][n]
这个循环应该怎么写?
思考的过程是什么?
兄弟,你这个似乎初始化的方式是一行一行的遍历,而不是按对角线遍历的亚

我觉得楼主您的表述应该从a[0][0]开始,毕竟一个数组的初始index是0。
下面我给出我的一种解法,
只给出局部算法 类型定义麻烦你自己补一下
i代表行数
j代表列数
另外设置一个colindex用于记忆上跳的列号 关于这个变量我会在解题思路里面详细说明。
n代表这个矩阵的行列数 比如7*7方阵n=7
for(i=0;i<n;i++)
{
colindex=0;
for(j=0;j<n;j++)
{
a[i][j]=1;
}
colindex++;
}
下面我画一个上三角阵,以5*5为例
1 1 1 1 1
0 1 1 1 1
0 0 1 1 1
0 0 0 1 1
0 0 0 0 1
观察其中为1的元素其行号用i代替列号用j代替(行列号从0开始计)
i=0,j=0,1,2,3,4
i=1,j=1,2,3,4
i=2,j=2,3,4
i=3,j=3,4
i=4,j=4
可以看到i从0变化到4的时候(可以设置成为循环的第一轮)
j会从一个初值变化到4
而j的每一轮初值是从0变化到4的
用colindex纪录j每一轮的初值
在该轮循环结束掉的时候将这个初值自增。

大概思路如上,要开始工作了~先写到这里