私はこれについて非常に多くのことを考え、すべての変数とカウンタがどう動いているのか、結果にどのように到達するのかを考え出すことができました。対角マトリックス印刷のロジックを見つけることができません
しかし、Mark Byerのソリューションhereをサポートするロジックはありますか、それともすべてのカウンタが適切に収まるよう調整されているだけですか?
くれアルゴリズム
コード
#include <stdio.h>
int main()
{
int x[3][3] = {1, 2, 3,
4, 5, 6,
7, 8, 9};
int n = 3;
for (int slice = 0; slice < 2 * n - 1; ++slice) {
printf("Slice %d: ", slice);
int z = slice < n ? 0 : slice - n + 1;
for (int j = z; j <= slice - z; ++j) {
printf("%d ", x[j][slice - j]);
}
printf("\n");
}
return 0;
}
Kedarに感謝します。これは私には役に立ちました。 – saltmangotree
このソリューションは長方形のマトリックスに拡張可能ですか? – saltmangotree
はい、私はそうだと思いますが、もちろんmとnの操作をもう少し必要とします。 –