找出二维数组中的鞍点用c 怎么求

找出二维数组中的鞍点用c 怎么求

#include <stdio.h>
#include <conio.h>
#define M 4 //定义列
#define N 5 //定义行
main()
{
int a[M][N]={0},i,j,d,e,f,g=0,b,c,n=0;
printf("输入一个%d×%d的整型二维数组\n",M,N);
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{printf("第%d行第%d列数:",i,j);
scanf("%d",&a[i][j]);}//输入数组

printf("你输入的数组为:\n");
for(i=0;i<M;i++) //i行
{
for(j=0;j<N;j++) //每行j个数
printf("%5d",a[i][j]); //输出第i行第j个数
printf("\n");
}
for(i=0;i<M;i++)
{
d=a[i][0];
for(j=0;j<N;j++)
if(d<a[i][j])
d=a[i][j];
for(j=0;j<N;j++)
if(d==a[i][j])
{
for(e=0;e<M;e++)
{
if(d>a[e][j])
break;
if(e==M-1)
{f=d;g=1;b=i;c=j;}
}
}
}
if(g==1) printf("鞍点是:第%d行第%d列,值为%d",b,c,a[b][c]),n=n+1;
if(g==0) printf("没找到\n");
getch();
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-17
解释下专业名字,什么叫鞍点。
第2个回答  2010-04-26
#include<stdio.h>
void main(){
int a[3][3],i,j,k,m,n,p,q,max,min;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++){
max=a[i][0];
for(m=0,n=0,j=0;j<3;j++)
if(a[i][j]>max){
max=a[i][j];
m=i; n=j;}
min=a[m][n];
for(k=0;k<3;k++)
if(a[k][n]<min){
min=a[k][n];
p=k; q=n;}
if(min==max)
printf("鞍点:a[%d][%d]=%d\n",m,n,max);
else printf("第%d行无鞍点\n",i);
}

}