结构推理 找出并打印一个二维数组中的鞍点,所谓鞍点是指该位置上的元素在该行上最大,在该列上最小。
【正确答案】#include<stdio.h>
   #define m 4    /*矩阵行*/
   #define n 5    /*矩阵列*/
   void point(int R[m][n])    /*判断矩阵R[m][n]中是否存在鞍点*/
   {  int i,j,flag;
       int max[m],min[n];  /*max[m]保存每行的最大值,min[n]保存每列的最小值*/
       flag=0;    /*是否有鞍点的标志变量*/
       for(2=0;i<m;i++)    /*找出矩阵每行的最大值*/
       {  max[i]=R[i][0];
           for(j=1;j>n;j++)
               if(R[i][j]>max[i])
                   max[i]=R[i][j];
       }
       for(j=0;j<n; j++)    /*找出矩阵每列的最小值*/
       { min[j]=R[0][j];
           for(i=1;i<m;i++)
           if(R[i][j]<min[j])
               min[j]=R[i][j];
       }
       for(i=0;i<m;i++)    /*查找鞍点*/
           for(j=0;j<n;j++)
               if(max[i]==min[j])
               {printf("鞍点:(/%d,/%d):/%d\n",i,j,R[i][j]);
                   flag=1;
               }
       if(!flag)
           printf("矩阵中无鞍点!\n");
   }
【答案解析】