程序填空题:矩阵间隔一行排序
下列程序的功能是将N行N列二维数组中每一行的元素进行排序, 第0行从小到大排序, 第1行从大到小排序, 第2行从小到大排序, 第3行从大到小排序, 例如:

则排序后

请填空。
```c++
#include
#include
#define N 4
void sort(int a[][N]) {
int i, j, k, t;
for (i = 0; i < N; i++)
for (j = 0; j < N - 1; j++)
for (k = @@[j + 1](2); k < N; k++)
/*判断行下标是否为偶数来确定按升序或降序来排序*/
if (@@[i % 2 != 0](2) ? a[i][j] < a[i][k] : a[i][j] > a[i][k]) {
t = a[i][j];
a[i][j] = a[i][k];
a[i][k] = t;
}
}
void outarr(int a[N][N])/*以矩阵的形式输出二维数组*/
{
int i, j;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++)
printf("%3d", a[i][j]);
printf("\n");
}
}
int main(void) {
int aa[N][N] = {{2, 3, 1, 4},
{8, 6, 5, 7},
{10, 9, 11, 12},
{14, 16, 13, 15}};
outarr(aa);
sort(aa);
outarr(aa);
return 0;
}
```
答案:
第1空:j + 1
第2空:i % 2 != 0

则排序后

请填空。
```c++
#include
#include
#define N 4
void sort(int a[][N]) {
int i, j, k, t;
for (i = 0; i < N; i++)
for (j = 0; j < N - 1; j++)
for (k = @@[j + 1](2); k < N; k++)
/*判断行下标是否为偶数来确定按升序或降序来排序*/
if (@@[i % 2 != 0](2) ? a[i][j] < a[i][k] : a[i][j] > a[i][k]) {
t = a[i][j];
a[i][j] = a[i][k];
a[i][k] = t;
}
}
void outarr(int a[N][N])/*以矩阵的形式输出二维数组*/
{
int i, j;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++)
printf("%3d", a[i][j]);
printf("\n");
}
}
int main(void) {
int aa[N][N] = {{2, 3, 1, 4},
{8, 6, 5, 7},
{10, 9, 11, 12},
{14, 16, 13, 15}};
outarr(aa);
sort(aa);
outarr(aa);
return 0;
}
```
答案:
第1空:j + 1
第2空:i % 2 != 0