📜  C |回路和控制结构|问题18(1)

📅  最后修改于: 2023-12-03 15:29:43.636000             🧑  作者: Mango

C语言中的回路和控制结构问题18

在C语言中,有许多回路和控制结构来控制程序的流程和执行顺序。在这个问题中,我们将讨论一个经典的问题,即如何使用循环结构打印出一个等腰三角形。

问题描述

请编写一个C语言程序,输出一个如下所示的等腰三角形:

    *
   ***
  *****
 *******
*********
解决方案

这个问题可以使用循环来解决。我们可以从上到下逐行打印三角形。对于每一行,我们需要确定应该打印多少个星号(*)以及在哪里打印它们。

根据等腰三角形的特性,我们可以发现,在第i行有2*i-1个星号,而这些星号位于第n行的位置为n-i到n+i-2。因此,我们可以使用一个外部循环来控制行数,内部循环来控制在当前行打印的星号。

我们可以使用for循环来编写程序,其中外部循环控制行数,内部循环控制列数。具体实现如下:

#include <stdio.h>

int main()
{
    int n = 5; // 三角形的高度
    int i, j;

    for (i = 1; i <= n; i++) // 外部循环控制行数
    {
        for (j = 1; j <= n-i; j++) // 在当前行之前空出一些位置
        {
            printf(" ");
        }

        for (j = 1; j <= 2*i-1; j++) // 内部循环控制在当前行打印的星号
        {
            printf("*");
        }

        printf("\n"); // 换行
    }

    return 0;
}

程序输出结果如下:

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

上述代码使用了两个for循环嵌套来完成等腰三角形的输出。外部循环变量i控制当前打印的行数,内部循环变量j控制在当前行打印的星号的数量和位置。

总结

本文介绍了如何使用循环来输出一个等腰三角形。C语言中的回路和控制结构非常灵活,可以让我们轻松实现各种复杂的程序逻辑。在编写程序时,我们应该充分利用这些结构来提高代码的效率和可读性。