读题比解题难系列

二维数组操作

http://www.nowcoder.com/questionTerminal/2f8c17bec47e416897ce4b9aa560b7f4

#include<iostream>
#include<vector>
//脑瘫题目,此题并不是矩阵题,而是一道输入合法性的检测题
using namespace std;
int main(){
    vector<int> Output(5);//输出初始化0
    int row,column;//行 列
    int x1,y1,x2,y2;//交换坐标(x1,y1) (x2,y2)
    int left_x;//第x行左边还能插入行? 猜测x行上面插入行
    int up_y;//第y列上面能插入列?  猜测y列左侧插入列
    int x,y;//查询坐标(x,y)
    
    //检测行列输入合法性
    while(cin>>row>>column){
        if(row<=0||row>9||column<=0||column>9)
            Output[0]=-1;
        
        //和检测交换的两个坐标的合法性
        cin>>x1>>y1>>x2>>y2;
        if(x1<0||x2<0||y1<0||y2<0||x1>=row||x2>=row||y1>=column||y2>=column)
            Output[1]=-1;
        
        //检测插入行的合法性
        cin>>left_x;
        if(left_x<0||left_x>=row||left_x==9||row<0||row>=9)
            Output[2]=-1;
        
        //检测插入列的合法性
        cin>>up_y;
        if(up_y<0||up_y>=column||column<=0||column>=9)
            Output[3]=-1;
        
        //检测查询坐标的合法性
        cin>>x>>y;
        if(x<0||x>=row||y<0||y>=column)
            Output[4]=-1;
        
        for(int i=0;i<5;i++)
            cout<<Output[i]<<endl;//输出结果
        for(int i=0;i<5;i++)
            Output[i]=0;//把输出数组重置为0
    }
    return 0;
}

全部评论
是的。我一看m*n的表格,准备申请一个9*9的二维数组;然后看到还有行列插入操作,马上想到用二维向量。然后还有交换,我看了半天,根本就没说交换的2个数的值,我哪里知道交换是否成功。最后看别人的题解,发现完全不用数组和二维向量,完全的条件判断。
点赞 回复 分享
发布于 2022-05-21 23:59

相关推荐

11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
评论
5
收藏
分享
牛客网
牛客企业服务