编写一个程序打印出由 * 号组成菱形图案,行数自定。
- 第一个for循环用于打印多行
- 第二个for循环用于打印空格,有菱形可以看出第一行的空格为6个,所以line - 1 - i的意思是,line - 1是因为第一行已经有一个星星,所以要先减一,- i的意思是每行少一个空格。
- 第三个for循环则是用来打印打印星星,因为每一行星星加两个,且第一行本来就存在1个星星所以,第二个表达式中 2 * i + 1的含义是每一行多两个星星且还有第一行的第一个星星。
输出样例
代码
此代码的想法是把菱形分为上下两部分进行打印 ,所以整个菱形的行数为2*line-1。
#include <stdio.h>
int main()
{
int line = 0;
scanf_s("%d", &line);
int i = 0;
for (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 (i = 0; i < line - 1; i++)//下部分
{
int j = 0;
for (j = 0; j <= i; j++)
{
printf(" ");
}
for (j = 0; j < 2 * (line - i - 1)-1; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}