答案:
#include <stdio.h>
int a = 0, b = 0;
void printLine(int a , int b) //输出一行包含:若干个空格 + 若干个*,第一,二个参数为空格数和*数; (定义一个星钻输出函数)
{
while (a--) //打印a个空格
{
printf(" ");
}
while (b--) //打印b个*
{
printf("*");
}
}
void main()
{
int n = 0, i = 0, j = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++) //循环上半部分
{
printLine(n - i, 2 * i - 1); //n-i为空格,2*i-1为*(从少变多输出)
printf("\n"); //换行
}
for (j = n - 1; j >= 1; j--) //循环下半部分(中间最长那行只有一行,所以不用再打印一遍)
{
printLine(n - j, 2 * j - 1); //从多变少输出
printf("\n"); //换行
}
}