问题标题: 酷町堂:2554

0
0
已解决
王韫之
王韫之
修练者
修练者

2554

50分,不知道错在哪,求指教!

int m,n,a[200][200],i,j,max=-1,min_i,min_j,min,k,sum=0;
    cin>>n;
    for(i=0;i<=n-1;i++)
        for(j=0;j<=n-1;j++)
        {
            cin>>a[i][j];
        }
    min=a[0][0];
    min_i=0;
    min_j=0;
    for(i=0;i<=n-1;i++)
    {
        for(j=0;j<=n-1;j++)
        {
            if(a[i][j]<min)
            {
                min=a[i][j];
                min_i=i;
                min_j=j;
            }
        }
            for(k=0;k<n;k++)
                {
                    if(a[k][min_j]>max)max=a[k][min_j];
                }
            if(max==min)
                    {
                        sum++;
                        cout<<min<<" "<<min_i+1<<" "<<min_j+1<<" ";
                    }

    }
    if(sum==0)cout<<"N";


0
已采纳
杨陈卓
杨陈卓
新手天翼
新手天翼
    for(int i=0;i<n;i++)
    {
        max=a[i][0];
        max_i=i;
        max_j=0;
        for(int j=1;j<n;j++)
        {
            if(max>a[i][j])
            {
                max=a[i][j];
                max_i=i;
                max_j=j;
            }
        }
        for(k=0;k<n;k++)
        {
            if(max<a[k][max_j])
            {
                break;
            }
        }
        if(k==5)
        {
            cout<<max<<" "<<max_i+1<<" "<<max_j+1;
            return 0;
        }
    }
    cout<<"N";

核心

定义不需要那么复杂

int a[5][5],max,max_i,max_j,k,n;

0
0
刘凯南
刘凯南
高级守护
高级守护

先定义两个数组,第一个x保存行最小,第二个y保存列最大,再依次判断,若a[i][j]等于x[i]等于y[j],输出a[i][j],i,j.return 0;

若判断结束,输出“N”

我要回答