我知道如何横向移动2D数组但是如何在C中对齐m是n?与Java类似或没有?像这样:
与
1 2 3 4
5 6 7 8
9 10 11 12
我们得到了
1 6 11
答案 0 :(得分:2)
每次循环时都向两个数组索引添加1。当m达到宽度-1或n达到高度-1时停止循环。
答案 1 :(得分:0)
创建一个函数,其中参数是:数组,没有行,没有列。因此,我们可能会收到对角线上的值。对角线存在的值是行和列索引相同的值。
X . . . .
. X . . .
. . X . .
. . . X .
. . . . X
void diagonalPrint(int a[100][100], int noOfRows, int noOfCols)
{
for(int i=0; i<noOfRows && i<noOfCols ; i++)
{
printf("%d", a[i][i]);
}
}
另外,要打印反向对角线,即
. . . . . X
. . . . X .
. . . X . .
. . X . . .
. X . . . .
X . . . . .
void diagonalPrint(int a[100][100], int noOfRows, int noOfCols)
{
for(int i=0; i<noOfRows && noOfCols==0 ; i++)
{
printf("%d", a[i][noOfCols--]);
}
}