PTA题目:字符菱形
根据读入的字符和边长,勾画字符菱形。
输入格式: 输入数据含有若干组的数据,每组数据包括一个可见字符c和一个整数n(1≤n≤30)。 以键盘输入^Z或遇到文件结束符时结束数据输入。
输出格式: 输出以c为填充字符,边长为n的菱形,每个菱形之后都输出一个换行符。
输入样例: 在这里给出一组输入。例如:
A 5 B 3 输出样例: 在这里给出相应的输出。例如:
A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
AAAAAAA
AAAAA
AAA
A
B
BBB
BBBBB
BBB
B
提示:建议使用c++的cin进行数据输入。
下面是我写的代码:
#include<bits/stdc++.h>
using namespace std
;
int main()
{
int i
,j
,k
,a
,n
;
char c
;
while(cin
>> c
>> n
)
{
k
=n
;
a
=1;
for(j
=0;j
<n
;j
++)
{
for(i
=0;i
<k
-1;i
++)
{
cout
<< ' ';
}
for(i
=1;i
<=2*a
-1;i
++)
{
cout
<< c
;
}
a
++;
cout
<<endl
;
k
--;
}
k
=n
-1;
a
=1;
for(j
=0;j
<n
-1;j
++)
{
for(i
=1;i
<=a
;i
++)
{
cout
<< ' ';
}
for(i
=1;i
<=2*k
-1;i
++)
{
cout
<< c
;
}
a
++;
k
--;
cout
<<endl
;
}
}
}
运行结果如下:
分析:
本题主要是观察字符的规律,当然字符的规律是很容易观察出来的,需要注意的是打印空格的时候,打印字符左边的空格就可以了,右边的就不用对称打印了,否则PTA上的编译器会报错(大概是输出格式不正确),这一点需要注意。