这题还是比较坑的首先要注意两点:
1.行末没有多余的空格;
2.就是当n==1的时候单独判断;
#include <iostream>
using namespace std;
int main()
{
char ch;
int n,flag=0;
while(cin>>ch)
{
if(ch=='@') break;
cin>>n;
if(flag)
cout<<endl;
flag=1;
if(n==1)
{
cout<<ch<<endl;
continue;
}
for(int i=1;i<n;i++) cout<<" ";
cout<<ch<<endl;
for(int i=2;i<n;i++){
for(int j=1;j<=n-i;j++) cout<<" ";
cout<<ch;
for(int j=1;j<=2*i-3;j++) cout<<" ";
cout<<ch<<endl;
}
if(n!=1)
{
for(int i=1;i<=2*n-1;i++)
cout<<ch;
cout<<endl;
}
}
return 0;
}