给定形式为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;
}