#include#define x 3 //二维数组的行数 #define y 4 //二维数组的列数 int main() { int i,j,max,maxj,min,flag=1; //定义变量 int arr[x][y]; printf("请输入一个%d*%d数组n",x,y); for(i=0;i max) {max=arr[i][j];maxj=j;}//找出一行中最大的数字并找出其列号下标 min=arr[i][maxj]; //设一行中最大值为其所在列最小值 for(j=0;j =x) { printf("二维数组的鞍点为arr[%d][%d]=%dn",i,maxj,max); flag=0;//作为判断有鞍点的依据 } } if(flag) //整个二维数组没有鞍点 printf("该二维数组没有鞍点n"); return 0; }
运行示例:
鞍点的定义:
该位置的元素在该行上最大、在该列上最小。
解题思路:
设一行中第一个为该行的最大值,找出一行中最大的数字并找出其列号下标,设一行中最大值为其所在列最小值,判断该数是否满足为一列中最小值,满足则为鞍点,不满足就不是鞍点。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)