10-1 改错题

测试数据来自 nnu_contest/5c63cb14f41362044e57017c

已知x数组中存储的n阶矩阵有一个鞍点(鞍点是指该位置上的数是所在行的最大数,同时也是所在列的最小数)。程序实现将矩阵中鞍点所在列移动到最右侧。
【含有错误的源程序】
#include<stdio.h>
#define N=4

void exchange(int a[][N])
{
int i,j,k,f,t,m,mj;
for(i=0; i<N; i++)
{
m=a[i][0]; mj=0; f=1;
for(j=0;j<N;j++)
if(a[i][j]>m)
{
m=a[i][j]; mj=j;
}
for(k=0;k<N&&f;k++)
if(a[k][mj]>m)
f=0;
if(k>=N)break;
}
if(f)
{
printf("An dian;a[%d][%d]\n",i,mj);
for(i=0;i<N;i++)
{
t=a[i][mj];
for(j=mj;j<N-1;j++)
a[i][mj]=a[i][mj+1];
a[i][N-1]=t;
}
}
}
void main()
{
int x[N][N]={{1,3,2,0},{4,6,5,-1),{7,9,8,0),{-1,10,3,2}},i,j;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%3d",x[i][j]);
printf("\n");
}
printf("\n");
exchange(int x[N][N]);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%3d",x[i][j]);
printf("\n");
}
}

测试案例:
输入:

1 3 2 0
4 6 5 -1
7 9 8 0
-1 10 3 2

输出:

0 1
1 2 0 3 
4 5 -1 6 
7 8 0 9 
-1 3 2 10

信息

ID
1291
难度
9
分类
(无)
标签
递交数
2
已通过
1
通过率
50%
上传者