首先,定义二维数组。
然后,为数组赋值。数据如下:
1 2 3
4 5 6
7 8 9
第一个循环表示一列一列检查有没有鞍点。
第二个循环找出每一列的最小值的行数。
并查找该值是不是该行的最大值。
最后,输出了数组,方便检查是否正确。
#include<stdio.h>
int main()
{
int a[3][3]={0},i,j,k,min,max,n,q=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++)
{
n=-1;
for(j=0;j<3;j++)
{
min=0;
if(a[min][i]>a[j][i])
{
min=j;
}
for(k=0;k<3;k++)
{
max=i;
if(a[min][max]<a[min][k])
{
n=0;
}
}
}
if(n==-1)
{
printf("鞍点为:%dn",a[min][max]);
q=1;
}
}
if(q==0)
printf("没有鞍点!n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%5d",a[i][j]);
}
printf("n");
}
}