问答详情
源自:4-12 循环结构之多重循环

想不明白“*”的输出

#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 11:52

个回答

  • 慕虎5521232
    2020-06-07 22:40:42

    这里i=1;


    for语句表示为:for(A; B; C))

    执行顺序为:

    1. 执行A

    2. 判断B,若为真进入循环,若为假跳过(跳出)循环

    3. 进行完一次循环后,执行C

    4. 重复2、3步,直到判断B为假后,跳出循环