#include <stdio.h>
int main()
{
int i, j, k, px[] = { -2, -2, -1, -1, 1, 1, 2, 2 },
py[] = { -1, 1, -2, 2, -2, 2, -1, 1 };
int cox[4][4] = { { 0 } };
for (i = 0; i < 4; i )
{
for (j = 0; j < 4; j )
{
for (k = 0; k < 8; k )
if (((i px[k]) >= 0 && (i px[k]) < 4) &&
((j py[k]) >= 0 && (j py[k]) < 4))
cox[i][j] ;
printf("%d\t", cox[i][j]);
}
printf("\n\n");
}
}
我部分理解這個嵌套回圈。但我不能完全理解為什么它的某些部分的輸出是 3,為什么中間部分是 4,但我明白為什么這個二維陣列的角部分的輸出是 2。請解釋一下。
uj5u.com熱心網友回復:
由于結果矩陣是象限對稱的,讓我從檢查四種情況開始:(i=0, j=0), (i=0, j=1), (j=1, i=0) 和 (i= 1,j=1)。
- 如果 (i=0, j=0),條件
(i px[k]) >= 0 && (i px[k]) < 4) && ((j py[k]) >= 0 && (j py[k]) < 4)滿足兩次:當 k=5 和 k=7 時。 - 如果(i=0, j=1),條件滿足3次:k=5時,k=6,k=7。
- 如果(i=1, j=0),條件滿足3次:k=3時,k=5,k=7。
- 如果(i=1, j=1),條件滿足四次:當k=3,k=5,k=6,k=7。
您可以將類似的考慮擴展到四個象限,然后您可以獲得輸出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/437653.html
