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