我需要遍历对角线上的矩阵,如以下示例所示。 我尝试改编Traverse Matrix in Diagonal strips中的代码,但未成功。
它是一个整数矩阵:int M [n] [n];
对角线的遍历顺序:
让我们举个例子:
00 01 02 03
10 11 12 13
20 21 22 23
30 31 32 33
,因此所需的输出将是:
片段1:00 11 22 33
片段2:01 12 23
片段3:10 21 32
片段4:02 13
片段5:20 31
切片6:03
片段7:30
答案 0 :(得分:0)
您可以尝试以下代码,将printf
替换为所需的内容。
#define N 4
int M[N][N];
//populate the array
for(int i=0; i<N; ++i)
{
printf("slice %d:", 2*i+1);
for(int j=0; j<N-i; ++j)
printf(" %d", M[j][j+i]);
printf("\n");
if(i > 0)
{
printf("slice %d:", 2*i+2);
for(int j=0; j<N-i; ++j)
printf(" %d", M[j+i][j]);
printf("\n");
}
}