二维数组循环一次初始化
1 /** 2 二维数组循环一次初始化.c 3 by pt 4 @2014 5 */ 6 #include <stdio.h> 7 8 int main(void) 9 { 10 int a[5][6] = {0}; 11 int i, j; 12 13 for (i=0; i<5*6; ) { 14 a[i/6][i%6] = ++i; 15 } 16 17 for (i=0; i<5; i++) { 18 for (j=0; j<6; j++) { 19 printf("a[%d][%d]=%d\n", i, j, a[i][j]); 20 } 21 } 22 23 return 0; 24 }
三维数组循环一次初始化
1 /** 2 三维数组循环一次初始化.c 3 by pt 4 @2014 5 */ 6 #include <stdio.h> 7 8 int main(void) 9 { 10 int a[5][6][7] = {0}; 11 int i, j, k; 12 13 for (i=0; i<5*6*7; ) { 14 a[i/42][(i/7)%6][i%7] = ++i; 15 } 16 17 for (i=0; i<5; i++) { 18 for (j=0; j<6; j++) { 19 for (k=0; k<7; k++) { 20 printf("a[%d][%d][%d]=%d\n", i, j, k, a[i][j][k]); 21 } 22 } 23 } 24 25 return 0; 26 }
四维数组循环一次初始化
1 /** 2 四维数组循环一次初始化.c 3 by pt 4 @2014 5 */ 6 #include <stdio.h> 7 8 int main(void) 9 { 10 int a[4][5][6][7] = {0}; 11 int i, j, k, l; 12 13 for (i=0; i<4*5*6*7; ) { 14 a[i/210][(i/42)%5][(i/7)%6][i%7] = ++i; 15 } 16 17 for (i=0; i<4; i++) { 18 for (j=0; j<5; j++) { 19 for (k=0; k<6; k++) { 20 for (l=0; l<7; l++) { 21 printf("a[%d][%d][%d][%d]=%d\n", i, j, k, l, a[i][j][k][l]); 22 } 23 } 24 } 25 } 26 27 return 0; 28 }
ps:其实原理跟计算n位数的第i位的数一样。