找出一个二维矩阵的鞍点,即该位子上的元素在该行最大,在该列最小。也可能没没有鞍点
下面是我的程序,改来改去都和书上的一样了,可还是运行的结果不正确,只是输出一个矩阵……
谢谢大家相助!
#include<stdio.h>
#include<stdlib.h>
#define M 10
#define N 10
int main()
{
int i,j,k,n,m,flag1,flag2,a[N][M],max,maxj;
printf("\n输入行数n:");
scanf("%d",&n);printf("\n输入列数m:");
scanf("%d",&m);
for(i=0;i<n;i++)
{
printf("第%d行?\n",i);
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
printf("%5d",a[i][j]);
printf("\n");
}
flag2=0;
for(i=0;i<n;i++)
{max=a[i][0];
for(j=0;j<m;j++)
if(max<a[i][j])
{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("\n第%d行第%d列的%d是鞍点\n",i,maxj,max);
flag2=1;
}
}
if(flag2=0)
printf("矩阵中无鞍点\n");
system("pause");
}