C语言——矩阵,寻找鞍点学习笔记


请编程找出一个M*N矩阵中的鞍点,即该位置上的元素是该行上的最大值,是该列上的最小值。如果矩阵中没有鞍点,则输出“No saddle point!

#include<stdio.h> 
#define M 100
#define N 100
void FindSaddlePoint(int a[][N], int m, int n){
  int i,j,temp,max,min,k,count=0;
  int maxpos,minpos;
  for(i=0; i<m; i++){
    max = a[i][0];
    for(j=0; j<n; j++){
      if(a[i][j] > max){
        max = a[i][j];
        maxpos = j;
      }
    }
    min = a[i][maxpos];
    for(k=0; k<m; k++){
      if(a[k][maxpos] < min){
        min = a[k][maxpos];
        minpos = k;
      }
    }
   if(max == min){
      printf("a[%d][%d] is %d\n",i,maxpos,max);
   }else 
    count++;
   }
  if(count == m){
    printf("No saddle point!\n");
  }
}
int main(){
  int m,n,k,i,j;
  int a[M][N];
  printf("Input m,n:\n");
  scanf("%d,%d",&m,&n);
  printf("Input matrix:\n");

  for(i=0; i<m; i++){
    for(j=0; j<n; j++){
      scanf("%d",&a[i][j]);
    }
  }
  FindSaddlePoint(a,m,n);
  return 0;
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM