C语言精选练习题:(11)打印菱形

文章目录

  • 每日一言
  • 题目
  • 思路
  • 代码
  • 结语

每日一言

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         *

思路

  1. 将图案分为上下两部分(前7行和后6行)
    C语言精选练习题:(11)打印菱形_第1张图片

  2. 仔细观察这个图形,发现上半部分一共n行,第 i 行需要打印2*i -1个*号

  3. 上半部分:需要打印n行

  4. 为了实现居中对齐,我们可以在每一行的前面打印n-i-1个空格。

  5. 接着打印i+1个*号

  6. 最后别忘记换行

  7. 下半部分:需要打印n-1行

  8. 为了实现居中对齐打印i+1个空格

  9. 接着打印n-i-1个*号
    10.别忘记换行

代码

#include 
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;
}

结语

请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!


都看到这里啦!真棒(*^▽^*)

可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

编程小白写作,如有纰漏或错误,欢迎指正


你可能感兴趣的:(你必须要会的C语言练习题,c语言,算法,开发语言)