要求:找出一个二维数组的鞍点。
鞍点:该元素在该行上最大,在该列上最小。
C语言程序如下(以3X4的二维数组为例):
#include <stdio.h>
#define N 3
#define M 4
int main()
{
int array[N][M];//定义二维数组
int i,j,k,max,min;
unsigned int c,d,e;
_Bool flag=0;
printf("请从键盘输入二维数组:");
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf("%d",&array[i][j]);
printf("输出此二维数组:\n");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
printf("%4d",array[i][j]);
printf("\n");
}
for(i=0;i<N;i++)
{
max=array[i][0];
c=i;
d=0;
for(j=1;j<M;j++)
{
if(max<array[c][j])
{
max=array[c][j];
d=j;
}
}
for(j=0;j<M;j++)
{
if(max==array[c][j]&&j!=d)
{
flag=1;
break;
}
}
if(flag==1)
{
flag=0;
break;
}
min=array[c][d];
for(k=0;k<N;k++)
{
if(c==k) continue;
if(min>array[k][d])
{
min=array[k][d];
e=k;
}
}
for(k=0;k<N;k++)
{
if(min==array[k][d]&&k!=e)
{
flag=1;
break;
}
}
if(flag==1)
{
flag=0;
break;
}
if(min==max)
printf("鞍点:array[%u][%u]=%d\n",c,d,array[c][d]);
}
return 0;
}
程序运行结果如下:

请各位大佬多多批评指正!!!!
3032

被折叠的 条评论
为什么被折叠?



