注册 登录
编程论坛 C++教室

鞍点问题(结果没有 。。。

靠谱的白蓝 发布于 2014-01-03 19:35, 542 次点击
我上机调试过了,没有语法错误,求解 !!
/*5. 找出二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。*/
#include <stdio.h>
void main()
{
    int a[3][3],i,j,r,c,k,rmax,find;
    printf(" 输入数组: \n");
    for (i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%d",&a[i][j]);
            find=0;i=0;
        while(i<3&&(find==0))
        {
            rmax=a[i][0];c=0;
            for(j=1;j<4;j++)
                if(rmax<a[i][j])
                { rmax=a[i][j];
                c=j;}
                find=1;k=0;
                while(k<3&&find==1)
                {
                    if(k!=i)
                        if(a[k][c]<=rmax)find=0;
                        k++;
                }
                if(find==1)
                    printf(" 鞍点: a[%d][%d]=%d\n",i,c,a[i][c]);
                    i++;
        }
        if(find==0)
            printf("not been found");
}

     
2 回复
#2
地雷接线爆炸2014-01-04 09:05
回复:我调试了一下,可以的:
#include "hello.h"
void main()
{
    int a[3][3],i,j,c,k,rmax,find;
    printf(" 输入数组: \n");
    for (i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
            scanf("%d",&a[i][j]);
    }
            find=0;i=0;
        while(i<3&&(find==0))
        {
            rmax=a[i][0];c=0;
            for(j=1;j<4;j++)
                if(rmax<a[i][j])
                { rmax=a[i][j];
                c=j;}
                find=1;k=0;
                while(k<3&&find==1)
                {
                    if(k!=i)
                        if(a[k][c]<=rmax)find=0;
                        k++;
                }
                if(find==1)
                    printf(" 鞍点: a[%d][%d]=%d\n",i,c,a[i][c]);
                    i++;
        }
        if(find==0)
            printf("not been found");
}

输入数组:
   3 4 5 2 3 6 3 4 7
鞍点:a[0][2]=5

#3
靠谱的白蓝2014-01-04 13:08
我们的编译器是不是不一样啊,还是行的。。。。
1