自己写出来了,但总感觉不太简洁,找到了一个相似的,也找到了自己一直在找的一个string的用法
for(int i=m;i>=1;i--)
{
int w=2*i-1; //该层个数
char arr[w]; //5
memset(arr,ch,sizeof(arr)); //1
string s(arr,arr+w); //2
int r=(2*m-1-w)/2;
if(r!=0)
{
char arr1[r];
memset(arr1,' ',sizeof(arr1)); //3
string s1(arr1,arr1+r); //4
cout <<s1;
}
cout <<s <<endl;
}
在输出的内容里面,不想用循环来输出,就直接找规律决定要输出的内容以及个数。其中1、2、3、4合起来是为了直接形成有特定个数的字符串以便输入,其实直接用 string(个数,’ 字符’)即可解决,又学到了。