#include<stdio.h>
#include<windows.h>
#pragma warning(disable:4996)
int main()
{
int l=0;
printf("请输入一个数字:\n",l);
scanf("%d", &l);
int i = 0;
int n = 0;
for (i = 0; i < l; i++)//上半个菱形的行数
{
for (n=0; n <l - i-1; n++)
{
printf(" ");
}//上半个菱形每行前面的空格数
for (n=0; n < 2 * i + 1; n++)//上半个菱形每行的*数
{
printf("*");
}
printf("\n");
}
for (i=0; i < l - 1; i++)
{
for (n=0; n < i + 1; n++)
{
printf(" ");
}
for (n=0; n < (l - 1 - i) * 2 - 1; n++)
{
printf("*");
}
printf("\n");
}
system("pause");
return 0;
}
另一种思路如下:
#include<stdio.h>
#include<windows.h>
#pragma warning(disable:4996)
int main()
{
int l = 0;
printf("请输入一个数字:\n", l);
scanf("%d", &l);
int i = 1;
int j = 1;
int n = 1;
for (i = 1; i < 8; i++)//该菱形的上半部分的行数。
{
for (int j = 1; j < 8 - i; j++)//每行前面的空格数。
printf(" ");
for (n = 1; n <= 2 * i - 1; n++)//每行空格后*的个数。
printf("*");
printf("\n");
}
for (i = 1; i <= l - 1; i++)//该菱形的下半部分的行数。
{
for (j = 1; j <= i; j++)
printf(" ");
for (n = 1; n <= (-2) * i + 13; n++)
printf("*");
printf("\n");
}
system("pause");
return 0;
}