10-1 改错题
已知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
- 1310
- 难度
- (无)
- 分类
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者