软题库 移动APP 扫码下载APP 随时随地移动学习 培训课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷名称 2012年下半年程序员考试下午真题试题(案例分析)
考试中心《2012年下半年程序员考试下午真题试题(案例分析)》在线考试
试卷年份2012年下半年
试题题型【分析简答题】
试题内容

阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。
【说明】
如果矩阵A中的元素A[i,j]满足条件: A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。
一个矩阵可能存在多个马鞍点,也可能不存在马鞍点。下面的函数求解并输出一个矩阵中的所有马鞍点,最后返回该矩阵中马鞍点的个数。
【 C 函数】
int findSaddle(int a[] [N],int M)
{     /*  a 表示 M 行 N 列矩阵, N 是宏定义符号常量*/
      int row,column ,i,k;
      int minElem;
      int count = 0; /* count 用于记录矩阵中马鞍点的个数*/
 
       for ( row = 0; row < (1)     ; row++) {
             /* minElem 用于表示第 row 行的最小元素值,其初值设为该行第 o 列的元素值*/
            (2)
       for ( column = 1; column < (3)     ;  column++)
       if   (  minElem  > a[row] [column]   ){
               minElem  =  a[row] [column);
       }

for  (   k  =  0;  k  < N;   k++   )
    if   (   a [row] [k] ==minElem   )    {
         /*对第 row 行的每个最小元素,判断其是否为所在列的最大元素*/
         for  (i =  0;  i < M;  i++)
              if   (     (4)     > minElem  )   break;
 
         if   (i>=      (5)     )  {
              printf(" (%d ,%d):  %d\n" ,row ,k ,minElem);   /*输出马鞍点*/
              count++;
         }/*if*/
    }/*if*/
 
}/*for*/
 
return  count;
 
}/*findSaddle*/


相关试题

推荐文章
合作网站内容