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;
}

 

posted @ 2017-05-17 22:04  selectmm  阅读(3394)  评论(0编辑  收藏  举报