1 条题解
-
0
C :
#include<stdio.h> #include<string.h> int main() { int i,j,n,m,x,k,ha; scanf("%d",&x); while(x-->0){ scanf("%d%d",&m,&n); k=1; while(n>0){ for(i=k;i<=m;i++) { ha=0; for(j=1;j<=m;j++) { if(i==j||i==m-j+1){printf("X");ha++;} else printf(" "); if(ha==2||(i==j&&i==m/2+1))break; } printf("\n"); } if(k==1)k=2; n--; } printf("\n"); } return 0; }
C++ :
#include<stdio.h> int main() { int t; int a,b; int i,j,k; scanf("%d",&t); while(t--) { scanf("%d%d",&a,&b); for(i=1;i<=b;i++) { if(i%2==1) //当是第奇数个小图形的时候,就将小图形完全输出 { for(j=1;j<=a;j++) { for(k=1;k<=a;k++) { if(k==j||k==a-j+1) printf("X"); else printf(" "); if((j<=a/2&&k==a-j+1)||(j>a/2&&k==j)) break;//避免输出多余的空格 } printf("\n"); } } else {//当是第偶数个小图形的时候,将小图形首尾各截去一行再输出 for(j=2;j<=a-1;j++) { for(k=1;k<=a;k++) { if(k==j||k==a-j+1) printf("X"); else printf(" "); if((j<=a/2&&k==a-j+1)||(j>a/2&&k==j)) break; } printf("\n"); } } } if(b%2==0)//如果一共有偶数个小图形,那么在最后就需要再加一个尾,即小图形的最后一行 { for(i=1;i<=a;i++) { if(i==1||i==a) printf("X"); else printf(" "); } printf("\n"); } if(t!=0) printf("\n"); } return 0; }
- 1
信息
- ID
- 400
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者