无法控制循环中的变量

Unable to control a variable in a loop

我似乎无法理解为什么这部分代码不起作用,尽管它非常简单。该程序应该这样做,1. 输入:要求用户插入一个数字(值存储在高度中),2. 输出:然后程序将 return " "(空格)在每一行中递减。

这是我想要的结果示例:(我使用 F 而不是空格)

输入:4

输出:

FFFF
FFF
FF
F

这是我得到的:

输入:4

输出:

FFFF
FFFF
FFFF
FFFF

        for (int r = 0; r <= height; r++)        // first loop, does the columns
      { int space = height;

        space -= 1;                             // decrements space value by 1 for each loop

        while (space != 0)                      // list out the correct spaces in each row
        {   
                                  
            printf (" ");
            space--;    
        }

在外循环的每次迭代中,您将 space 重新初始化为 height,因此每次迭代都会获得相同的输出。

一种更简单的方法是使用循环变量作为列数并对其进行迭代向后:

for (int r = height; r > 0 ; r--)
{
    for (int space = 0; space < r; ++space)
    {
        printf("F");
    }
    printf("\n");
}

for 循环内

    for (int r = 0; r <= height; r++)        // first loop, does the columns
  { int space = height;

    space -= 1;                             // decrements space value by 1 for each loop

    while (space != 0)                      // list out the correct spaces in each row
    {   
                              
        printf (" ");
        space--;    
    }

变量 space 始终设置为相同的值 height - 1

     int space = height;

    space -= 1;

您可以通过以下方式输出您展示的图案

for ( ; 0 < height; --height )
{
    for ( int i = 0; i < height; i++ )
    {
        putchar( 'F' );
    }

    putchar( '\n' );
}