无法在第二个“'FOR'”上获取“'i'”的值
Can't get the value of ''i'' on the second ''FOR''
我不明白我是怎么得到第二个 for 的条件 (altura - i + 1)
。
例如,当 altura = 2
时我没有得到我假设的值,然后它运行:for(espaço=3; espaço<=(altura-i+1);espaço++)
。
#include <stdio.h>
#include <cs50.h>
int main(void)
{
int altura;
int espaço;
int asterisco;
do {
altura = get_int("Height:");
} while(altura<1||altura>8);
for( int i = 0; i<altura;i++)
{
for(espaço=3; espaço<=(altura-i+1);espaço++)
{
printf(" ");
}
for (asterisco=0;asterisco<=i;asterisco++)
{
printf("#");
}
printf("\n");
}
}
我不确定您是否熟悉 c.
中的 for
循环
for语句分为三部分 + code:
for(A;B;C)
{
*code*;
}
那些部分是
- A:初始化语句
- B: 测试条件
- C:更新语句
A最开始只执行一次,然后B、code、C依次执行,直到B为false(或者for终止执行来自 code).
中的语句
这意味着在您的情况下,例如 altura=5
,
int espaço;
int altura = 5;
for(int i=0; i<altura; i++)
{
for(espaço=3; espaço<=(altura-i+1); espaço++)
{
*code*;
}
}
外层循环执行i=0,1,2,3,4
在内部循环中,
- 当 i=0, altura-0+1=6, 那么 espaço=3,4,5
- 当 i=1, altura-1+1=5, 那么 espaço=3,4
- 当 i=2, altura-2+1=4, 那么 espaço=3
- 当i=3, altura-3+1=3, 那么内循环永远不会执行因为espaço=3 但测试条件是espaço < 3
- 当i=4,altura-4+1=2时,内层循环不执行,同上
希望对您有所帮助
我不明白我是怎么得到第二个 for 的条件 (altura - i + 1)
。
例如,当 altura = 2
时我没有得到我假设的值,然后它运行:for(espaço=3; espaço<=(altura-i+1);espaço++)
。
#include <stdio.h>
#include <cs50.h>
int main(void)
{
int altura;
int espaço;
int asterisco;
do {
altura = get_int("Height:");
} while(altura<1||altura>8);
for( int i = 0; i<altura;i++)
{
for(espaço=3; espaço<=(altura-i+1);espaço++)
{
printf(" ");
}
for (asterisco=0;asterisco<=i;asterisco++)
{
printf("#");
}
printf("\n");
}
}
我不确定您是否熟悉 c.
中的for
循环
for语句分为三部分 + code:
for(A;B;C)
{
*code*;
}
那些部分是
- A:初始化语句
- B: 测试条件
- C:更新语句
A最开始只执行一次,然后B、code、C依次执行,直到B为false(或者for终止执行来自 code).
中的语句这意味着在您的情况下,例如 altura=5
,
int espaço;
int altura = 5;
for(int i=0; i<altura; i++)
{
for(espaço=3; espaço<=(altura-i+1); espaço++)
{
*code*;
}
}
外层循环执行i=0,1,2,3,4 在内部循环中,
- 当 i=0, altura-0+1=6, 那么 espaço=3,4,5
- 当 i=1, altura-1+1=5, 那么 espaço=3,4
- 当 i=2, altura-2+1=4, 那么 espaço=3
- 当i=3, altura-3+1=3, 那么内循环永远不会执行因为espaço=3 但测试条件是espaço < 3
- 当i=4,altura-4+1=2时,内层循环不执行,同上
希望对您有所帮助