输出菱形
描述
输入一个正整数(奇数),按要求打印菱形。要求,第一行打印1个*,第二行打印3个*,每行等差递增直到输出n个*,之后每行递减输出,直到输出1个*。注意:所有*构成一个菱形的形状,即菱形本身靠中轴线对齐。(注意本题的输出格式)
输入
第1行是一个整数n,表示随后有n组数据。每组数据占一行。
输出
若n不符合要求,输出error;若n符合要求,首先输出print,然后换行打印菱形,并换行。注意:菱形最长的一排*靠左边,无空格。
样例
输入
1
5
输出
代码如下
#include<stdio.h>//打印菱形
int main()
{
int n, i, b;
scanf_s("%d", &n);
for (i = 0; i < n; i++)
{
scanf_s("%d", &b);
if (b <= 0 || b % 2 == 0)
{
printf("error\n");
continue;//对输入数据符合是否符合条件的判断
}
else
{
printf("print\n");
for (int a = 0; a < (b + 1) / 2; a++)//a即为第a行,打印上半个三角形
{
for (int c = (b - 1) / 2; c > a; c--)//打印空格
printf(" ");
for (float d = -0.5; d < a; d += 0.5)//打印星号
printf("*");
printf("\n");
}
for (int a =(b+1)/2; a < b; a++)//打印下半个三角形
{
for (int c =(b+1)/2; c <= a; c++)//打印空格
printf(" ");
for (float c=b-0.5;c>a;c-=0.5)
printf("*");
printf("\n");
}
}
}
return 0;
}