C语言打印菱形
思路:想要打印一个菱形,可以分为上下两部分,通过观察可以发现上半部分星号的规律是 1 3 5 7故理解为 2×对应行数 + 1 ,空格是4 3 2 1故理解为 行数-对应行数-1。
上半部分代码如下
for (int i = 0;i < line;i++)
{
int j = 0;
for (j = 0; j < line - i - 1; j++)
{
printf(" ");
}
for (j = 0; j < 2 * i + 1; j++)
{
printf("*");
}
printf("\n");
}
思路:观察下半部分可以看出,空格和对应行数相同,*号是7 5 3 1 满足2×(行数 - 对于行数值- 1) -1。
代码如下
for (int i = 0; i < line - 1; i++)
{
int j = 0;
for (j = 0; j <= i;j++)
{
printf(" ");
}
for (j = 0; j < 2 * (line - 1 - i) - 1 ;j++)
{
printf("*");
}
printf("\n");
}
总代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>nt main()
{
int line = 0;
scanf("%d",&line);
for (int i = 0;i < line;i++)
{
int j = 0;
for (j = 0; j < line - i - 1; j++)
{
printf(" ");
}
for (j = 0; j < 2 * i + 1; j++)
{
printf("*");
}
printf("\n");
}
for (int i = 0; i < line - 1; i++)
{
int j = 0;
for (j = 0; j <= i;j++)
{
printf(" ");
}
for (j = 0; j < 2 * (line - 1 - i) - 1 ;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}