Snow_maple


私信TA

用户名:2016114438

访问量:21880

签 名:

我喜欢一个人,她叫鞠婧祎!

等  级
排  名 257
经  验 5905
参赛次数 2
文章发表 32
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

步骤①将所有的空都设置成“空格”;

步骤②选择合适的位置设置成“X”:合适的位置可以用两个变量t1,t2表示,初始值为行首和行尾,然后t1++;t2--;再换行,如果t2为0了此时t1一定在行尾,交换两个值

while(k<m){

s[k][t1]='X';

s[k][t2]='X';

t1++;t2--;k++; 

if(t2==0) swap(t1,t2); 

}

,重复下去直到达到最后一行

步骤③判断行数;行数一定是k = a*b-b+1;



注意事项:





参考代码:

#include<iostream>

#include<string>

#include<algorithm>

using namespace std;

int main(){

char s[40][40];

int n,a,b;

cin>>n;

while(n--){

cin>>a>>b;

int m=a*b-b+1;

for(int i=0;i<m;i++){

for(int j=0;j<a;j++){

     s[i][j]=' ';

}

int t1=0,t2=a-1,k=0;

while(k<m){

s[k][t1]='X';

s[k][t2]='X';

t1++;t2--;k++; 

if(t2==0) swap(t1,t2); 

}

for(int i=0;i<m;i++){

for(int j=0;j<a;j++){

     cout<<s[i][j];

cout<<endl;

    }

    cout<<endl;

   }

 

}


 

0.0分

0 人评分

  评论区

  • «
  • »