const int dimension = 7 ; void make_zigzag( int n, int a[][dimension]) ... { int i = 0, j= 0; int num = 0; while (1) ...{ while (i>= 0 && j<= n-1) ...{ a[i--][j++] = num++; } if (i<0 && j< n) ...{ i=0; } if (j == n) ...{ j = n-1; i += 2; } while ( j >= 0 && i<= n-1) ...{ a[i++][j--] = num++; } if ( j < 0 && i< n) ...{ j= 0; } if (i == n) ...{ i = n-1; j += 2; } if ( i == n-1 && j == n-1 ) ...{ a[i][j] = num; break; } }}