文章目录
- 每日一言
- 题目
- 思路
- 代码
- 结语
每日一言
Intelligence without ambition is a bird without wings.
聪明但没有抱负,就像没有翅膀的鸟。
题目
输入一个整数n,打印对应2n-1行的菱形图案,比如输入7,图案一共13行
1 *
2 ***
3 *****
4 *******
5 *********
6 ***********
7 *************
8 ***********
9 *********
10 *******
11 *****
12 ***
13 *
思路
-
将图案分为上下两部分(前7行和后6行)
-
仔细观察这个图形,发现上半部分一共n行,第 i 行需要打印2*i -1个*号
-
上半部分:需要打印n行
-
为了实现居中对齐,我们可以在每一行的前面打印n-i-1个空格。
-
接着打印i+1个*号
-
最后别忘记换行
-
下半部分:需要打印n-1行
-
为了实现居中对齐打印i+1个空格
-
接着打印n-i-1个*号
10.别忘记换行
代码
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
//将菱形分成两部分 上部是n+1行打印 下部是n行打印
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n - i-1; j++)
{
printf(" ");
}
for (int j = 0; j <= i; j++)
{
printf("* ");
}
printf("\n");
}
for (int i = 0; i < n-1; i++)
{
for (int j = 0; j <= i; j++)
{
printf(" ");
}
for (int j = 0; j < n - i-1; j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
结语
请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!
都看到这里啦!真棒(*^▽^*)
可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家
编程小白写作,如有纰漏或错误,欢迎指正