| 
 | 
 
 
发表于 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; 
} 
 
这是我按自己的思路写的,不知道有用没有? |   
 
 
 
 |