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

2016-06-22 10:48:32  分类: c++程序设计第三版谭浩强课后答案  参与:

C++语言编程:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。

以下是此题的【c++源代码】,需要【c源代码】请点击进入

#include <iostream>
using namespace std;
int main()
{ const int n=4,m=5;        //假设数组为4行5列    
  int i,j,a[n][m],max,maxj;
  bool flag;
  for (i=0;i<n;i++)         //输入数组
     for (j=0;j<m;j++)
      cin>>a[i][j];
  for (i=0;i<n;i++)        
   {max=a[i][0]; maxj=0;   
    for (j=0;j<m;j++)      //找出第i行中的最大数
   if (a[i][j]>max)
     {max=a[i][j];      //将本行的最大数存放在max中
      maxj=j;           //将最大数所在的列号存放在maxj中
     }
    flag=true;            //先假设是鞍点,以flag为真代表
    for (int k=0;k<n;k++)
   if (max>a[k][maxj])  //将最大数和其同列元素相比
      {flag=false;     //如果max不是同列最小,表示不是鞍点令flag1为假
       continue;}
    if(flag)             //如果flag1为真表示是鞍点
 {cout<<"a["<<i<<"]["<<"["<<maxj<<"]="<<max<<endl;
                      //输出鞍点的值和所在行列号
  break;
 }
  }
  if(!flag)             //如果flag为假表示鞍点不存在
    cout<<"It does not exist!"<<endl;
   return 0;
  }


来源:c++程序设计第三版谭浩强课后答案

本文链接:http://www.wb98.com/cjia/post/cjia_5.7.html


本站文章搜索:

<< 上一篇下一篇 >>

搜索

Tags列表

赞助商链接