14-1 改错题

14-1 改错题

对n行n列(n<10)二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序。
【含有错误的源程序】
#include <stdio.h>
#define N=4
void swap(int *p1, int *p2)
{
int p;
p=p1; p1=p2; p2=p;
}
void sort(int a[N][N])
{
int i,j,k;
for(i=0; i<N; i++)
for(j=0; j<N; j++)
for(k=j+1; k<N; k++)
if(i%2=0)
{
if(a[i][j]>a[i][k])
swap(a[i]+j,a[i]+k);
}
else
{
if(a[i][j]<a[i][k])
swap(a[i]+j,a[i]+k);
}
}
int main()
{
int a[N][N];
for(i=0; i<N; i++)
for(j=0; j<N; j++)
scanf("%d", &a[i][j]);
sort(a[N][N]);
int i,j;
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
printf("%5d", a[i][j]);
printf("\n");
}
return 0;
}

测试案例:
输入:

4
3   4   2    1
8   7   5    6
12  10  11   9
15  14  16   13

输出:

1   2   3  4
8   7   6  5
9  10  11  12
16  15  14  13

信息

难度
9
分类
(无)
标签
递交数
5
已通过
2
通过率
40%
被复制
7
上传者