编写程序 找出一个二维数组中的鞍点

如题所述

#include <stdio.h>
#define N 4
#define M 5
void main()
{ int i,j,k,a[N][M],max,maxj,flag;
printf("please input matrix:\n");
for(i=0;i<N;i++)
for(j=0;j<M;j++) scanf("%d",&a[i][j]);
for(i=0;i<N;i++)
{ max=a[i][0]; maxj=0;
for(j=0;j<M;j++)
if(a[i][j]>max) { max=a[i][j]; maxj=j; }
flag=1;
for(k=0;k<N;k++)
if(max>a[k][maxj]) { flag=0; continue; }
if(flag)
{printf("a[%d][%d]=%d\n",i,maxj,max); break;} }
if(!flag) printf("Tt is not exist!\n"); }
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-10
{ max=a[i][0]; maxj=0;
for(j=0;j<M;j++)
if(a[i][j]>max) { max=a[i][j]; maxj=j; }
你这个找出了第一行最大的数,同时在第几列。
但假如第二行,三行有更大的数,会把max,maxj覆盖了啊,等于你是找出了整个数组最大的数啊!
第2个回答  2010-04-22
老大,你没有给分啊,呵呵,给个分,我帮你写一个吧