微光·浅月 2020-04-12 17:43 采纳率: 100%
浏览 402
已采纳

一道简单的C++题目,求这段代码哪里错了,求正确代码!!!!

马鞍数
题目描述
求一个n×m数阵中的马鞍数,输出它的位置。所谓马鞍数,是指在行上最小而在列上最大的数。如下: n=5 m=5
5 6 7 8 9
4 5 6 7 8
3 4 5 2 1
2 3 4 9 0
1 2 5 4 8
则1行1列上的数5就是马鞍数。
输入格式
第一行一个整数t,表示有t组测试数据(t<=10)。
每组测试数据第一行: n m (0<n,m<=10)
第2到n+1行:每行m个整数(每个数都<10)
输出格式
每组测试数据输出若干行:
如果存在马鞍数,则输出所有马鞍数,每行一个,为行和列以及马鞍数。
如果不存在马鞍数,则输出一行“not exit”(注意:不包括双引号)。
输入输出样例
输入样例
1
9 8
9 8 7 6 5 4 3 2
8 8 9 9 9 9 9 9
3 7 7 6 5 4 2 1
8 8 3 2 1 7 3 2
7 5 3 2 9 1 3 2
6 3 2 1 9 3 1 3
8 2 1 3 5 8 9 1
1 3 2 1 3 5 6 8
9 3 1 2 3 4 5 8
输出样例
2 2 8

#include<bits/stdc++.h>
using namespace std;
int main(){
    int t,n,m,i,j;
    int col[12],row[12],a[12][12];
    bool flag=false;
    cin>>t;
    for(int k=1;k<=t;k++){
        cin>>n>>m;
        for(i=1;i<=n;i++)row[i]=INT_MAX;
        for(j=1;j<=m;j++)col[j]=INT_MIN;
        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++){
                cin>>a[i][j];
                if(a[i][j]<row[i])row[i]=a[i][j];
                if(a[i][j]>col[j])col[j]=a[i][j];
            }
        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++){
                if(a[i][j]==row[i]&&a[i][j]==col[j]){
                    cout<<i<<" "<<j<<" "<<a[i][j]<<endl;
                    flag=true;
                }
            }
            if(!flag)cout<<"not exit"<<endl;
    }

    return 0;
}
  • 写回答

3条回答 默认 最新

  • dabocaiqq 2020-04-15 00:45
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 MATLAB怎么通过柱坐标变换画开口是圆形的旋转抛物面?
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿