无法控制循环中的变量
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' );
}
我似乎无法理解为什么这部分代码不起作用,尽管它非常简单。该程序应该这样做,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' );
}