题目链接
https://www.dotcpp.com/oj/contest4207_problem3.html
题目描述
小明的梦想是要当一个战士,并且拥有神奇的盾牌,这个盾牌可以根据需要随意的放大与缩小。
输入
有n组测试数据。首先在第一行输入一个整数n (0 < n < 20)
然后有n行测试数据,每行测数据有一个整数a表示盾牌的边长(0 < a < 100)
输出
根据盾牌的边长输出盾牌。每两个盾牌之间要有一个空行。
样例输入
3 1 2 3
样例输出
* * *** * * *** ***** *** *
解题思路
一:由题目可以看出本题的盾牌行数为2*n-1。
二:按照样例输出进行输出
代码
#include<stdio.h>
int main()
{
int a,n,i,j,k,t;
scanf("%d",&n);
while(scanf("%d",&a)!=EOF)
{
for(i=1;i<=(2*a-1)/2+1;i++)//打印上半部分
{
for(j=1;j<=(2*a-1)/2+1-i;j++)
{
printf(" ");
}
for(j=1;j<=2*i-1;j++)
{
printf("*");
}
printf("\n");
}
for(i=1;i<=(2*a-1)/2;i++)//打印下半部分
{
for(j=1;j<=i;j++)
{
printf(" ");
}
for(j=((2*a-1)/2+1-i)*2-1;j>=1;j--)
{
printf("*");
}
printf("\n");
}
printf("\n");
}
return 0;
}