带有*字符的螺旋图案打印

时间:2018-11-21 15:53:36

标签: c arrays matrix spiral

给定形式为4k + 1的整数N,打印出带有*字符的螺旋线。我知道2D数组应该解决这个问题,但是我无法确定用于确定应打印哪个元素的if条件。这种螺旋形状的图案是什么?

示例:

*********
        *
******* *
*     * *
* *** * *
* *   * *
* ***** *
*       *
*********

到目前为止,我已经写过:

#include <stdio.h>

int main() {
    int N,i,j;
    char  mat[100][100];
    do{
        printf("Input N: ");
        scanf("%d",&N);
        if(N%4!=1)
            printf("N not in required format!\n");

        }while(N%4!=1);
    for(i=0; i<N; i++){
        for(j=0; j<N; j++){
            mat[i][j]='*';
        }
    }
    for(i=0; i<N; i++){
        for(j=0; j<N-1; j++){
            if(i==0||i==N-1||j==N-1)
                printf("%c",mat[i][j]);
            if(j==0&&(i>2&&i<N-1))
                printf("%c",mat[i][j]);
            else
                printf(" ");
        }
        printf("\n");

    }

    return 0;
}

0 个答案:

没有答案