z字形矩阵输出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013554860/article/details/48252425

点击打开链接

1.左下方向因无法继续直行需要变向时,要先判断是否能往下走,若不能往下走再往右走;

2.右上方向因无法继续直行需要变向时,要先判断是否能往右走,若不能往右走再往下走

#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
using namespace std;
int Direction,Arr[505][505];///1,2,3,4,分别表示右,下,左下,右上。
int main()
{
    int n=0,i=0,j=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            scanf("%d",&Arr[i][j]);
        }
    }
    int x=0,y=0;
    printf("%d ",Arr[x][y]);
    Direction=1;
    while(x!=(n-1)||y!=(n-1))
    {
        if(Direction==1&&y<n-1)///向右
        {
               y++;
               printf("%d ",Arr[x][y]);
               Direction=3;
        }
        if(Direction==2&&x<n-1)///向下
        {
             x++;
            printf("%d ",Arr[x][y]);
            Direction=4;
        }
        if(Direction==3)///左下
        {
            while(y>0&&x<n-1)
            {
                 x++;y--;
                printf("%d ",Arr[x][y]);
            }
            if(y!=0)///能走下面
            {
                Direction=2;
            }
            else
                Direction=1;///走右
        }
        if(Direction==4)///右上
        {
            while(x>0&&y<n-1)
            {
                 x--;y++;
                printf("%d ",Arr[x][y]);
            }
            if(x!=0)///走右面
            {
                Direction=1;
            }
            else
                Direction=2;///走下面
        }
    }
    return 0;
}


没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试