问题标题: 酷町堂:2554 行最小列最大

0
0
已解决
王子健
王子健
初级天翼
初级天翼
#include<bits/stdc++.h>
using namespace std;
int main()
{
    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";
    return 0;
}

咋错的?只有50分

哪位大佬有钱,帮我看一下。

谢谢了


0
已采纳
杨陈卓
杨陈卓
新手天翼
新手天翼

我看不懂你的代码,你的sum是什么意思??

你的初始化也弄错了,算了上核心。

    循环(int i=0;i<n;i++)
    {
        max=a[i][0];
        max_i=i;
        max_j=0;
        循环(int j=1;j<n;j++)
        {
            如果(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";//如果成立,就不会执行到这。

0
我要回答