有人可以帮助我理解这段代码,尤其是空间'部分。在这段代码的输出的第一行中,如果4空间的值没有空间,那么空间的价值如何:
#include <stdio.h>
/* Inverted mirrored right triangle */
int main(int argc, char *argv[])
{
int i, j, space;
for (i = 0; i <= 5 ;i++) {
for (space = 5 - i; space <= 4; space++) {
printf(" ");
}
for (j = 5 - i; j >= 0; j--) {
printf("*");
}
printf("\n");
}
return 0;
}
答案 0 :(得分:0)
专注于这段代码
for (i = 0; i <= 5 ;i++) {
--> for (space = 5 - i; space <= 4; space++) {
printf(" ");
}
内部for循环空间值的第一次迭代中的是space: 5-0 = 5
作为i:0
并且我们有条件space <= 4
并且这不满足控制没有
进入大括号的内部而不打印任何空间(第一行)
您必须知道for(;;)
的工作原理。
for (i=0 ; i<10 ; i++ ) {
printf("%d",i);
}
// end loop line
for (loop index initialize ; condition ; do after innerloop commands ) {
command1;
command2;
}
首先i:0
并且因为i
小于10个循环内部执行
并在屏幕上打印0。
打印后i
加1(i++
等于i = i+1
)。
然后i:1
,i
仍然小于10并打印i:1
,我们在屏幕上看到1,所以
上。直到我们在屏幕上i:9
打印9然后增加一个i:10
然后是最后一次迭代,就像现在i:10
并且不小于10的内部
循环不执行,程序控制到循环后(结束循环线)。