求蛇形矩阵

代码:

#include

using namespace std;

int main()

{

    int n,a[20][20]={0};

    cin>>n;

    int p=0,q=0,i=0,j=0;

    while(1){

        if(n<=0){

            break;

        }

        if(p==0&&q==0){

            a[i][j]=n;

            j=j+1;

            p=1;

            n--;

            continue;

        }

        if(p==1&&q==0){

            a[i][j]=n;

            i=i+1;

            j=j-1;

            n--;

            if(j==0){

                q=1;

            }

            continue;

        }

        if(p==1&&q==1){

            a[i][j]=n;

            i=i+1;

            n--;

            p=0;

            continue;

        }

        if(p==0&&q==1){

            a[i][j]=n;

            i=i-1;

            j=j+1;

            n--;

            if(i==0){

                q=0;

            }

            continue;

        }

    }

    for(i=0;i<20;i++){

        if(a[i][0]==0){

            break;

        }

        for(j=0;j<20;j++){

            if(a[i][j]>0){

                cout<

            }

        }

        cout<

    }

    return 0;

}

结果:


问题2:

输入n,是行数

输出:比如输入5

1  3  6  10  15

2  5  9  14

4  8  13

7  12

11

代码:

#include

#include

using namespace std;

int main(){

    int n;

    while(cin>>n){

        int i=0,j=0,m=1;

        int **p=new int* [n];

        for(int m=0;m

            p[m]=new int[n];

        }

        for(int k=0;k

            for(int k1=0;k1

                p[k][k1]=0;

            }

        }

        for(int k=0;k

            for(int k1=0;k1

                p[i][j]=m++;

                //cout<

                if(i!=0){

                    i=i-1;

                    j=j+1;

                }

            }

          // cout<

            i=k+1;

            j=0;

        }

        int s1=n;

        for(int k=0;k

            for(int k1=0;k1

                if(p[k][k1]==0){

                    continue;

                }else{

                    if(k1==s1-1){

                        s1=s1-1;

                        cout<

                    }else{

                        cout<

                    }

                }

            }

            if(k==n-1){

                break;

            }

            cout<

        }

    }

    return 0;

}

结果:


你可能感兴趣的:(求蛇形矩阵)