被师傅考了一道题,作为C语言初学者凑出来了做法
#include<stdio.h>
int main()
{
int input;
printf("请输入一个数作为空心菱形的行数");
scanf_s("%d", &input);
int i, j, k, l;
k = input * 0.5 + 1;
//上半部分的输出
for (i = 1; i <= k; i++)//控制行数增加
{
for (j = 1; j <= k - i; j++)//控制每行的空格个数
printf(" ");
for (l = 1; l <= 2 * i - 1; l++)//控制星号个数
if (l == 1 || l == 2 * i - 1)
printf("*");
else
printf(" ");
printf("\n");
}
//下半部分的输出
for (i = 1; i <= k; i++)//控制行数增加(i)
{
for (j = 1; j < i + 1; j++)//控制每行空格个数
printf(" ");
for (l = 1; l <= 2 * (k - i) - 1; l++)//控制每行星号个数
if (l == 1 || l == 2 * (k - i) - 1)
printf("*");
else
printf(" ");
printf("\n");
}
}
总算是实现啦,接下来想想更好的解决办法