#define N 9 #include #define SEE 1 #define SAW 2 #if N < 1 #define N 1 #endif int main(void) { int i, j, next, dir = SEE, n = N - 1; int matrix[N][N]; next = i = j = 0; while(N) { matrix[i][j] = ++next; if((i & j) == n) break; switch(dir) { case SEE: if(j == n) { ++i; dir = SAW; break; } if(!i) { ++j; dir = SAW; break; } --i; ++j; break; case SAW: if(i == n) { j++; dir = SEE; break; } if(!j) { i++; dir = SEE; break; } --j; ++i; } } printf("\n\nValue of N is %d.\n\n", N); for(i = 0; i <= n; ++i) { for(j = 0; j <= n; ++j) printf("\t%02d", matrix[i][j]); printf("\n\n"); } return 0; }