这道题问题出在对于换行的判断。。。。
#include<iostream>
using namespace std;
int main()
{
char c;
int h, f = 0;
while (cin>>c)
{
if (c == '@')
return 0;
cin>>h;
if (f > 0)
cout<<'\n';
if (h == 1)
{
cout<<c<<endl;
continue;
}
int temp = 2*h - 1;
for (int i=0; i<temp/2; i++) //输出第一行
cout<<" ";
cout<<c<<endl;
for (int i=2; i<h; i++) //输出中间行
{
int j;
for (j=0; j<(temp - (2*i - 1))/2; j++)
cout<<" ";
cout<<c;
for (j=0; j < 2*i - 3; j++)
cout<<" ";
cout<<c<<endl;
}
for (int i=0; i<temp; i++) //输出最后一行
cout<<c;
f++;
cout<<endl;
}
}