liwenhao96 发表于 2013-12-6 22:00:36

关于鞍点问题

本帖最后由 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");
}

maomingkun 发表于 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;
        /****************************输入矩阵*****************************/
        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]
查看完整版本: 关于鞍点问题