解题思路:找规律,仔细观察每行每列的*和空格输出情况
注意事项:
参考代码:
#include<stdio.h> int main() { int i=0,j,k=0,n,N[100]; while(scanf("%d",&N[i])!=EOF) { i++; } int cnt=i; while(k!=cnt) { printf("%d\n",N[k]); n=(2*N[k]-1); for(i=1;i<=n;i++) if(i%2!=0) { for(j=1;j<=n;j++) { if(i<=(n+1)/2) { if((j<i&&j%2==0)||(j>n-i&&j%2==0)) { printf(" "); } else { printf("*"); } } else { if((j<=n-i&&j%2==0)||(j>=i&&j%2==0)) { printf(" "); } else { printf("*"); } } } printf("\n"); } else { for(j=1;j<=n;j++) { if(i<=(n+1)/2) { if((j<i&&j%2!=0)||(j>n-i&&j%2!=0)) { printf("*"); } else { printf(" "); } } else { if((j<=n-i&&j%2!=0)||(j>=i&&j%2!=0)) { printf("*"); } else { printf(" "); } } } printf("\n"); } k++; } return 0; }
0.0分
0 人评分