|
发表于 2013-12-6 22:00:37
|
显示全部楼层
#include <stdio.h>
int max1(int a,int b,int c,int d);
int min1(int a,int b,int c,int d);
void main()
{
int i,j,t=0,flag;
int a[4][4];
/****************************输入矩阵*****************************/
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
}
}
/****************************输出矩阵*****************************/
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
/****************************判断鞍点****************************/
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
{
if (a[i][j]==max1(a[i][0],a[i][1],a[i][2],a[i][3]))//当前数是不是本行三者中最大的
{
for(i=0;i<4;i++)
{
if (a[i][j]==min1(a[0][j],a[1][j],a[2][j],a[3][j]))//当前数是不是本咧中最小的
{
flag=1;
t++;
printf("第%d行%d列是本矩阵的鞍点!",i+1,j+1);
}
}
}
}
//找到第一行的最大的数
}
if (t==0)
{
printf("本矩阵中没有鞍点!\n");
}
else
{
printf("本矩阵中共有%d个鞍点!\n",t);
}
}
int max1(int a,int b,int c,int d)//求三个数的最大值
{
int max;
max=a>b?a:b;
if (max<c)
{
max=c;
}
if (max<d)
{
max=d;
}
return max;
}
int min1(int a,int b,int c,int d)//求三个数的最小值
{
int min;
min=a<b?a:b;
if (min>c)
{
min=c;
}
if (min>d)
{
min=d;
}
return min;
}
这是我按自己的思路写的,不知道有用没有? |
|