解题思路:
按照题目的意思一步一步展开,主要分成三层,上层、中间的X以及下边部分
注意事项:
需要注意的是循环次数为两个以上的时候上边的图案是从第二层开始的
参考代码:
#include <iostream> using namespace std; int n,a,b; int main(){ cin>>n; while(n--){ cin>>a>>b; int c=a,d=0,e=a,f=0; while(f!=b) { //输出图案次数 while(c!=1){ //重点循环输出的图案是从第二层开始的 if(f>=1){ d++; c-=2; e-=2; } for(int j=0;j<d;j++) cout<<" "; //输出前面的空格个数 d++; cout<<"X"; for(int k=e-2;k>0;k--) cout<<" "; //输出空间空格个数 e-=2; cout<<"X"<<endl; c-=2; } for(int j=0;j<d;j++) cout<<" "; if(c==1) //c控制中间的X cout<<"X"<<endl; while(c!=a){ d--; for(int j=0;j<d;j++) cout<<" "; //输出前边空格 cout<<"X"; for(int l=e;l>0;l--) cout<<" "; //输出中间空格 e+=2; cout<<"X"<<endl; c+=2; } f++; //控制循环层数 } cout<<endl; } return 0; }
0.0分
0 人评分