题目:输入一个3X4的矩阵,输出其鞍点。判断鞍点的条件,鞍点位置上的元素在所在的行最大、列最小。矩阵也可以没有鞍点。
解答:
#include<stdio.h>
void main()
{
int a[3][4]={0},i,j,j1,i1,i2,n;
for(i=0;i<3;i++)//输入数组
{
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<3;i++)//先固定行数
{
for(j=1,j1=0,n=1;j<4;j++)//取行里面最小数的列数
{
if(a[i][j]>a[i][j1])
{
j1=j;
}
}
for(i1=i,i2=0;i2<3;i2++)//进行列判断
{
if(a[i2][j1]<a[i1][j1])//判断列里面是否为最小
{
n=0;
break;
}
}
if(n)
{
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("%d为鞍点%d %d\n",a[i1][j1],i1,j1);
break;
}
}
if(!n)
printf("没有鞍点\n");
}