我的做法是利用二维数组先找一行的最大值在在最大值所在列里找最小值,如果最大值和最小值相同则满足鞍点定义,这个程序虽然可以通过慕课的样例但是有一个 bug就是出现
2
2 2
2 2
时并不能输出所有点希望大佬指教。
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[n][n];
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
//输入
int judge=0,x=0;
for(int I=0;I<n;)
{
int max=a[I][x];
for(int J=x+1;J<n;J++)
{
if(a[I][J]>max)
max=a[I][J];
}
//判断一行最大
for(;max!=a[I][x]&&x<n;) x++;
//找到最大一行所在列
int min=a[0][x];
for(int o=1;o<n;o++)
{
if(a[o][x]<min) min=a[o][x];
}
//判断该最大的一列的最小
if(max==min)
{
judge=1;
printf("%d %d",I,x);
}
int judge_1=0;
if(x<n) x++;
for(int h=++x;h<n;h++)
{
if(a[I][h]==a[I][x])
judge_1=1;
}
//一行有相同最大值时
if(judge_1==0)
{
I++;
x=0;
}
}
if(judge==0) printf("NO");
}
标签:慕课,int,max,最大值,最小值,二维,鞍点 来源: https://blog.csdn.net/m0_62135536/article/details/122023504
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。