想不明白“*”的輸出
#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;
}
第二個子循環for(k=0;k<2*i-1;k++),因為i=2,k<3,那他不是循環兩次嘛,為什么第一行只有一個*
2020-06-07
這里i=1;
for語句表示為:for(A; B; C))
執行順序為:
1. 執行A
2. 判斷B,若為真進入循環,若為假跳過(跳出)循環
3. 進行完一次循環后,執行C
4. 重復2、3步,直到判斷B為假后,跳出循環