关于鞍点问题
本帖最后由 liwenhao96 于 2013-12-6 22:03 编辑3行4列的矩阵,编出了这个,求修改。。。
#include <stdio.h>
void main()
{
int i,j,k,t=0,flag=0,m,n,a,max,min;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a);
for(i=0;i<3;i++)
{
max=a;
for(j=0;j<4;j++)
if(max<a)
{max=a;m=i;n=j;}
for(k=0;k<3;k++)
{min=a;
if(min>a)
flag=1;
}
if(flag==0)
{t=1;printf("%d\n",a);}
flag=0;
}
if(t==0)printf("NO");
}
#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;
/****************************输入矩阵*****************************/
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
{
scanf("%d",&a);
}
}
/****************************输出矩阵*****************************/
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
{
printf("%d\t",a);
}
printf("\n");
}
/****************************判断鞍点****************************/
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
{
if (a==max1(a,a,a,a))//当前数是不是本行三者中最大的
{
for(i=0;i<4;i++)
{
if (a==min1(a,a,a,a))//当前数是不是本咧中最小的
{
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;
}
这是我按自己的思路写的,不知道有用没有?
页:
[1]