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++)//打印次数控制,比上面少一行,故n-1
{
for(i=1;i<=a;i++)//打印空格
{
cout << ' ';
}
for(i=1;i<=2*k-1;i++)//打印字符
{
cout << c;
}
a++;
k--;
cout <<endl;
}
}
}
运行结果如下:
分析:
本题主要是观察字符的规律,当然字符的规律是很容易观察出来的,需要注意的是打印空格的时候,打印字符左边的空格就可以了,右边的就不用对称打印了,否则PTA上的编译器会报错(大概是输出格式不正确),这一点需要注意。