寻找鞍点
作者:互联网
寻找鞍点
题目内容:
请编程找出一个M*N矩阵中的鞍点,即该位置上的元素是该行上的最大值,是该列上的最小值。如果矩阵中没有鞍点,则输出“No saddle point!”
已知函数原型:
void FindSaddlePoint(int a[][N], int m, int n);
在该函数中输出有无鞍点的信息。
程序运行结果示例1:
Input m,n:
3,3↙
Input matrix:
1 2 3↙
4 5 6↙
7 8 9↙
a[0][2] is 3
程序运行结果示例2:
Input m,n:
3,4↙
Input matrix:
3 4 7 5↙
0 1 8 2↙
9 3 2 6↙
No saddle point!
输入提示: "Input m,n:\n"
“Input matrix:\n"
输入格式:
输入矩阵大小: "%d,%d"
输入矩阵元素: "%d"
输出格式:
找到鞍点的输出格式:"a[%d][%d] is %d\n"
没找到鞍点的输出格式:"No saddle point!\n"
1 #include <stdio.h> 2 #define N 32 3 void FindSaddlePoint(int a[][N], int m, int n); 4 int main() 5 { 6 printf( "Input m,n:\n"); 7 int m,n; 8 scanf("%d,%d",&m,&n); 9 10 printf( "Input matrix:\n" ); 11 int array[N][N]={0}; 12 for(int i=0;i<m;++i){ 13 for(int j=0;j<n;++j){ 14 scanf("%d",&array[i][j]); 15 } 16 } 17 FindSaddlePoint(array,m,n); 18 19 return 0; 20 } 21 void FindSaddlePoint(int a[][N], int m, int n) 22 { 23 int find = 0; 24 for(int i=0;i<m;++i) 25 { 26 int rowPos=i,columnPos=0,flag = 1; 27 for(int j=1;j<n;++j) 28 { 29 if(a[i][j]>a[rowPos][columnPos]){ 30 rowPos = i; 31 columnPos = j; 32 } 33 } 34 for(int k=0;k<m;++k){ 35 if(a[k][columnPos]<a[rowPos][columnPos]){ 36 flag = 0; 37 break; 38 } 39 } 40 if(flag){ 41 printf("a[%d][%d] is %d\n",rowPos,columnPos,a[rowPos][columnPos]); 42 find = 1; 43 } 44 } 45 if(!find){ 46 printf("No saddle point!\n"); 47 } 48 }
标签:matrix,point,int,矩阵,寻找,Input,鞍点 来源: https://www.cnblogs.com/GoldenEllipsis/p/11665938.html