我不明白我该如何满足条件(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");
}
}
答案 0 :(得分:0)
我不确定您是否熟悉c中的for
循环。
for语句包含三个部分+ code :
for(A;B;C)
{
*code*;
}
这些部分是
A仅在开始时执行一次,然后按该顺序执行B, code 和C,直到B为假(或者for的执行从<中的语句终止em> 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执行外循环 在内部循环中,
希望有帮助