找出二维数组中的鞍点

来源:互联网 发布:环境保护实用数据手册 编辑:程序博客网 时间:2024/05/17 03:11

找出二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小.可能没有鞍点

#include<stdio.h>#define n 4//定义行数n #define m 5//定义列数m int main(){int arr[n][m];int i,j,jmax,k;int flag=1,count=0;//输入数组元素 for(int i=0;i<n;i++){for(int j=0;j<m;j++){scanf("%d",&arr[i][j]);}}//判断 for(i=0;i<n;i++){int max=arr[i][0]; for(j=0;j<m;j++){if(arr[i][j]>=max){max=arr[i][j];jmax=j;//求出第i行最大值max位于第几列,并记录 }}flag=1;//默认flag=1,该点为鞍点 for(k=0;k<n;k++){if(arr[k][jmax]<max){flag=0;break;//若第j列中存在比max小的数,则该点不是鞍点,flag=0 }}if(flag){printf("%d %d\n",i,jmax);count++;//count计算鞍点个数}}if(count==0) printf("None");//若count=0,无鞍点时输出none return 0;}


0 0