for( j=i ; j<5 ; j++ ) 空格為什么小于5,根據什么來取值的?
#include <stdio.h>
int main()
{
? ? int i, j, k;
? ? for(i=1; i<5; i++)
? ? {
? ? ? ? /* 觀察每行的空格數量,補全循環條件 */
? ? ? ? for( j=i? ? ;? j<5 ;? j++? )??
? ? ? ? {
? ? ? ? ? ? printf(" ");? ? //輸出空格
? ? ? ? }
? ? ? ? /* 觀察每行*號的數量,補全循環條件 */
? ? ? ? for( k=0 ;? k<2*i-1 ;? k++? ? ?)?
? ? ? ? {
? ? ? ? ? ? printf("*");? ?//每行輸出的*號
? ? ? ? }
? ? ? ? printf("\n");? ? ?//每次循環換行
? ? }
? ? return 0;
}
2020-05-07
因為“for(j=i;j<5'j++)”是子循環,它循環一遍父循環才循環一次,每完成一次循環i都比上一次大。
因為j=i,所以j隨著i的變化而變化,假設i=3,則在這循環里j的初始值為3,又因為j<5,所以只能輸出兩次.
因為int是整型不是浮點型,所以這里j<5也可以寫成j<=4,因為輸出四行。(我是新人,僅供參考)