小问题之鞍点。。
大家好!请大家帮忙解一下鞍点问题,在二维数组中,在该行最大,在该列最小,可能没有鞍点。。本人新手,谢谢了!
程序代码:#include<stdio.h>
#define M 100
#define N 100
void main()
{
int i,j;
int a[M][N];
int m,n,k;
int max,maxj;
int flag;
int leap;
int d;
printf("输入一个数字:\n");
scanf("%d",&d);
printf("\n");
printf("请输入您所需要的行值:\n");
scanf("%d",&m);
printf("请输入您所需要的列值:\n");
scanf("%d",&n);
printf("OK!请输入%d*%d阶矩阵!!!\n",m,n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("则初始化数组为:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%2d",a[i][j]);
}
printf("\n");
}
printf("以下是此矩阵鞍点情况:\n");
printf("\n");
for(i=0;i<m;i++)//开始找鞍点
{
max=a[i][0];
for(j=0;j<n;j++)//先找一行中最大的数
{
if(a[i][j]>max)
{
max=a[i][j];
maxj=j;
}
}
for(k=0;k<m;k++)//判断数该在其所在的列是否最小
{
if(max>a[k][maxj])
{
flag=0;
}
}
if(flag!=0)
{
printf("有鞍点!!是 %d !!!\n",max);
leap=0;
}
}
if(leap!=0)
{
printf("无鞍点!!!\n");
}
printf("\n");
}