"之"字行打印(利用宏观框架)

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

 

void m_prinf(int a[][10],int ar,int ac,int br,int bc,bool dir)
{
    if(dir)
    {
        while(ac!=bc+1)
        {
            printf("%d ",a[ar--][ac++]);
        }
    }
    else
    {
        while(br!=ar+1)
        {
            printf("%d ",a[br++][bc--]);
        }
    }
}
void f(int a[][10],int n,int m)
{
    int rEnd=n,cEnd=m;
    int ar=0,ac=0,br=0,bc=0;
    bool dir=true;//斜线上为true
    while(ac!=cEnd)
    {
        m_prinf(a,ar,ac,br,bc,dir);
        ar==rEnd-1?ac++:ar++;
        bc==cEnd-1?br++:bc++;
        dir=!dir;
    }
}
int main(int argc, char *argv[]){
    int a[10][10];
    int n,m;
    while(~scanf("%d%d",&n,&m))
    {
        for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
        scanf("%d",&a[i][j]);
        f(a,n,m);
    }
	return 0;
}

猜你喜欢

转载自blog.csdn.net/Legends_Never_Die/article/details/83690230