鞍点定义:在一个矩阵中,每一行的最大值是其所在的每一列的最小值。
下面为代码分析:
#include<stdio.h>
int main()
{
int a[3][3],i,j;
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
scanf("%d",&a[i][j]);//用for循环定义一个3x3的二维数组。
int max,c,t,min;//用max 来存储行的最大值和列的最大值,min为后的判断条件。
min=0;
for(i=0;i<=2;i++)
{
max=a[i][0];//讲每一行的第一个元素赋给max。
t=0;
for(j=0;j<=2;j++)
{
if(max<a[i][j])
{
max=a[i][j];
t=j;//t用来存储该行最大值所在的列。
}
}//用for循环求出没一行的最大值。
c=1;
for(j=0;j<=2;j++)
{
if(max>a[j][t])
{
c=0;
break;
}
}//第二个for循环用来判断是否为该列的最小值。
if(c1)
{
printf(“鞍点是%d\n”,max);
min++;//min为判断是否有鞍点,若有鞍点,自动加1。
}
}
if(min0)
printf(“没有鞍点\n”);
getchar();
getchar();
return 0;
}