小问题之鞍点。。
大家好!请大家帮忙解一下鞍点问题,在二维数组中,在该行最大,在该列最小,可能没有鞍点。。本人新手,谢谢了!
#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"); }