题解 | #"之"字形打印矩阵#

"之"字形打印矩阵

http://www.nowcoder.com/practice/d2efe600e73d47a2ba1533dc926cbb46

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m;
    cin>>n>>m;
    int arr[n][m];
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++)
            cin>>arr[i][j];
    }
    int x1=0,y1=0,x2=0,y2=0;//分别代表行目前的坐标和列目前的坐标
    bool flag=true;//true是从左下到右上方向,false是右上到左下方向
    for(int i=0;i<m+n-1;i++){//总的循环次数是边长之和减一因为顶点处重合了
        if(flag){
            int tempx=x1,tempy=y1;
            while(tempx>=x2){
                cout<<arr[tempx][tempy]<<" ";
                tempx--;
                tempy++;
            }
        }
        else{
            int tempx=x2,tempy=y2;
            while(tempx<=x1){
                cout<<arr[tempx][tempy]<<" ";
                tempx++;
                tempy--;
            }
        }
        flag=!flag;//方向取反
        if(x1==n-1){
            y1++;
        }
        else x1++;
        if(y2==m-1)
            x2++;
        else y2++;
    }
}
全部评论

相关推荐

10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务