那个j=i;j<5;j++我看不懂这里啊,谁能告诉我吗

来源:4-12 循环结构之多重循环

BossZn

2015-10-30 22:08

#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;

}


写回答 关注

3回答

  • 不加班
    2015-10-31 10:44:31
    已采纳


    #include <stdio.h>
    
    int main()
    {
    int i, j, k;
    
    for(i=1; i<5; i++)  //这个外层循环用来控制行,for执行4次,即要打印4行
    {
            /* 观察每行的空格数量,补全循环条件 */
            for(j=i;j<5; j++)  //这个for用来输出每行前面的空格数的
                               //通过观察,随着行数的增加,每行前面的空格数减少
                               //当j=i=1,即第一行,输出4个空格;
                               //当j=i=2,即第二行,输出3个空格;......
                                //当j=i=4,即最后一行,输出1个空格。
            {
                printf(" ");    //输出空格
            }
                                                                                                                                                       
            /* 观察每行*号的数量,补全循环条件 */
            for( k=0 ; k<2*i-1 ; k++     )
            {
                printf("*");   //每行输出的*号
            }
    
            printf("\n");     //每次循环换行
        }
    
        return 0;
    }



    半暖微凉

    for(j=i;j<5; j++) 这样出来的空格为什么会越来越少呢?J不是会自加吗?那空格不是会一行比一行多吗?我看不懂这里。 谢谢解答!

    2015-12-01 16:43:53

    共 3 条回复 >

  • 慕容0544846
    2018-04-30 17:05:35

    还是没懂  求大佬详解

  • 大大的世界
    2015-10-31 20:55:59

    那为什么不能第一行空3空格,第二行为空2空格,第三行空1空格,第四行不空格呢?

        #include <stdio.h>

        int main()

        {

            int i, j, k;

            for(i=1; i<5; i++)

            {

                /* 观察每行的空格数量,补全循环条件 */

                for(    j=i ; j< 4;  j++  )  

                {

                    printf(" ");    //输出空格

                }

                /* 观察每行*号的数量,补全循环条件 */

                for( k=0 ;  k<2*i-1 ;  k++     ) 

                {

                    printf("*");   //每行输出的*号

                }    

                printf("\n");     //每次循环换行

            }

            return 0;

        }


C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题