C程序 打印倒置金字塔

C程序 打印倒置金字塔

在这里,我们将看到如何用C语言程序打印一个倒置的金字塔。下面是一些例子。

输入: 8
输出:

* * * * * * * * * * * * * * * 
 * * * * * * * * * * * * * 
   * * * * * * * * * * * 
     * * * * * * * * * 
       * * * * * * * 
         * * * * * 
           * * * 
             * 

输入: 5
输出:

* * * * * * * * * 
 * * * * * * * 
   * * * * * 
     * * * 
       * 

方法 1:

该模式将被分为三个部分。

1.将使用一个for循环来打印空白处
2.将使用一个for循环来打印左侧的三角形
3.一个for循环将被用来打印三角形的其余部分,使其成为准确的模式

算法:

1.初始化变量i、j和空格,分别代表行、列和空白处。

2.这里的行数是8,用户可以采取任何数字。

3.初始化一个for循环,它将作为打印图案的主循环,并驱动里面的其他循环。

4.初始化一个for循环,它将打印主循环内的空白处。

5.现在,为了打印星形图案,我们将首先打印半个金字塔,如下图所示。要做到这一点,我们将初始化一个for循环,其条件为2 * i – 1 ,因为星星的数量是奇数。

打印倒置金字塔的C程序

6.在它之后,我们将使用另一个for循环来打印图案的其余部分。

下面是打印一个倒金字塔图案的C语言程序。

// C program to print
// inverted pyramid
// pattern
#include <stdio.h>
 
// Driver code
int main()
{
   int rows = 8, i, j, space;
 
   for (i = rows; i >= 1; --i)
   {
       // Loop to print the blank space
       for (space = 0;
            space < rows - i; ++space)
           printf("  ");
      
       // Loop to print the half of
       // the star triangle
       for (j = i; j <= 2 * i - 1; ++j)
           printf("* ");
      
       // Loop to print the rest of
       // the star triangle
       for (j = 0; j < i - 1; ++j)
           printf("* ");
       printf("\n");
   }
 
   return 0;
}

输出

* * * * * * * * * * * * * * * 
  * * * * * * * * * * * * * 
    * * * * * * * * * * * 
      * * * * * * * * * 
        * * * * * * * 
          * * * * * 
            * * * 
              * 

时间复杂度: O(n 2 )

辅助空间: O(1)

方法 2:

将使用两个for循环。

1.将使用一个for循环来打印空白处
2.将使用一个for循环来打印星星

算法:

1.初始化变量i、j和行。
2.这里的行数是8,用户可以取任何数字。
3.初始化一个for循环,它将作为打印图案的主循环,并驱动里面的其他循环。
4.初始化一个for循环,该循环将打印主循环内的空白处,并从1运行到i。
5.运行一个从1到行的for循环 * 2-1),来打印星星。
6.在新行字符的帮助下移动到下一行。

下面是打印一个倒金字塔图案的C语言程序。

// C program to print
// inverted pyramid
// pattern
#include <stdio.h>
 
// Driver code
int main()
{
    int i, j, rows = 8;
 
    for (i = 1; i <= rows; i++)
    {
        // Loop to print the blank spaces
        for (j = 1; j < i; j++)
        {
            printf(" ");
        }
 
        // Loop to print the stars
        for (j = 1;
             j <= (rows * 2 - (2 * i - 1));
             j++)
        {
            printf("*");
        }
 
        // Move to the next line to
        // complete the pattern
        printf("\n");
    }
 
    return 0;
}

输出

***************
 *************
  ***********
   *********
    *******
     *****
      ***
       *

时间复杂度: O(n 2 )

辅助空间: O(1)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程