Ex5_4.cpp
上传用户:wuzhousb
上传日期:2022-07-12
资源大小:380k
文件大小:1k
源码类别:

书籍源码

开发平台:

Visual C++

  1. //【例5.4】已知矩阵 int mat[8][8],找出其中的极点与鞍点。如某元素在所在行相邻点中与所在列相邻点中均为最大或最小,
  2. //则为极点;如某元素在所在行(或列)相邻点中为最大,同时该元素在所在列(或行)相邻点中为最小,则为鞍点。
  3. #include<iostream>
  4. #include<iomanip>
  5. using namespace std;
  6. int mat[8][8]={0,3,5,7,11,13,17,19,1,2,3,9,16,17,21,18,3,5,4,14,22,19,26,15,5,11,9,6,16,
  7. 15,23,12,9,12,8,7,8,9,10,11,7,6,15,14,13,10,9,10,13,4,7,24,20,18,12,12,15,10,9,8,25,19,16,14}; 
  8. int maxmin(int a,int b,int c){ 
  9. //判断相邻3元素中间元素是否最大或最小
  10.   if(a>b&&b<c)  return -1;
  11.   else if(a<b&&b>c) return 1;
  12.           else return 0;}  //b为最大返回1 ,最小返-1,其他为0
  13. int main (void){
  14.  int i,j,k,l;
  15.  for(i=1;i<=6;i++)
  16.  for(j=1;j<=6;j++){
  17.  k=maxmin(mat[i][j-1],mat[i][j],mat[i][j+1]);
  18.  if(k==0)  continue;
  19.  l=maxmin(mat[i-1][j],mat[i][j],mat[i+1][j]);
  20.  if(l==0) continue;
  21.  if(k==1&&l==1)    cout<<"极大点:";
  22.  else if(k==-1&&l==-1)  cout<<"极小点:";
  23.  else cout<<"鞍  点:";
  24.  cout<<setw(2)<<mat[i][j]<<" ; i="<<i<<"; j="<<j<<endl;
  25. }
  26.  return 0;
  27. }