c语言怎么求鞍点

2025-04-30 22:18:57
推荐回答(1个)
回答1:

不是很确定...#include/*****检查行,找出最大值*****/
int check_1(int *a)
{
int i,max_id;
max_id=0;
for(i=0;i<4;i++)
{
if(a[i] max_id=i+1;
}
return max_id;
}/*****检查该行最大值所在列,找出最小值*****/
int check_2(int a[5][5],int i,int ret)
{
int j,min;
min = a[0][ret];
for(j=0;j<4;j++)
{
if(a[j][i]>a[j+1][ret])
min=a[j+1][ret];
}
if(a[i][ret] == min)
return min;
else
return -1;
}int main()
{
int a[5][5]={1,2,3,4,5,2,3,4,5,4,3,4,5,6,4,4,5,6,7,4,5,6,7,8,4}; int i,j,ret1,ret2; for(i=0;i<5;i++) //打印数组
{
for(j=0;j<5;j++)
{
printf("%3d",a[i][j]);
}
printf("\n");
} for(i=0;i<5;i++)
{
ret1 = check_1(a[i]); //检查行,找出最大值 ret2=check_2(a,i,ret1); //检查该行最大值所在列,找出最小值
if(ret2==-1) //返回-1说明该点不是鞍点
continue;
else
printf("andian:%d\n",ret2);
}
return 0;
}