帮忙修改个C语言程序。多谢

来源:百度知道 编辑:UC知道 时间:2024/04/30 08:52:54
找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。

/*Find the saddle point*/

#include <stdio.h>
#define N 5
#define M 5
main()
{
int i,j,k,flag1,flag2,a[N][M],max,maxi,maxj;
for(i=0;i<N;i++)
for(j=0,j<M;j++)
scanf("%d,&a[i][j]");
flag2=0;
for(i=0;i<N;i++){
max=a[j][0];
for(j=0;j<M;j++)
if(a[i][j]>max){
max=a[i][j];
maxj=j;
}
for(k=0,flag1=1;k<N&&flag1;k++)
if(max>a[k][maxj])
flag1=0;
if(flag1){
printf("\nThe saddle point is:%d,%d,%d\n"m,i,maxj,max);
flag2=1;
}
}
if(flag2)
printf("\nThere is no saddle point in the Matrix\n");
}

小问题,不过不容忽视,改后:
#include <stdio.h>
#define N 3
#define M 3
main()
{
int i,j,k,flag1,flag2,a[N][M],max,maxi,maxj;
for(i=0;i<N;i++)
for(j=0;j<M;j++) //逗号改为';'
scanf("%d",&a[i][j]); //此处分号有问题
flag2=0;
for(i=0;i<N;i++){
max=a[j][0];
for(j=0;j<M;j++)
if(a[i][j]>max){
max=a[i][j];
maxj=j;
}
for(k=0,flag1=1;k<N&&flag1;k++)
if(max>a[k][maxj])
flag1=0;
if(flag1){
printf("\nThe saddle point is:%d,%d,%d\n",i,maxj,max); //多了m
flag2=1;
}
}
if(flag2)
printf("\nThere is no saddle point in the Matrix\n");
}