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

有没有大佬出个标准答案,求求了

整道题完全没看懂,这三个字母分别对应了什么,又怎么产生联系的?希望大佬能讲解细一点,然后求一份标准的答案。?

提问者:云雀JUN 2021-06-10 22:56

个回答

  • weixin_慕先生2217783
    2021-08-02 17:36:26


    #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<i*2-1;k++) 

            {

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

            }

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

        }

        return 0;

    }


  • 慕仰6034142
    2021-06-14 19:37:32

    i表示行数,外层循环(i=1;i<5;i++)就是从第一行到第四行,执行循环体内的语句

    j表示每一行星号前面的空格数,你要输出一个三角形,那么第一行1颗星,前面要有3个空格;第二行3颗星,前面就得有2个空格;第三行5颗星,前面就得有1个空格;第四行7颗星,前面没空格;因此循环条件为              for(j=1;j<5-i;j++),(这里答案给出的是(j=i;j<5;j++),效果和意思是一样的)这样你看,当i=1时,5-i=4,j<5-i也就是j<4,那么j就是从1到3,把这个循环跑了三遍,而我们循环体里的语句是printf(" ");输出一个空格,那跑三次不就是输出3个空格吗?然后i=2,i=3,i=4依此;


    k表示每一行的星星数,原理和空格的输出是一样的呀。

    以下是我的代码:

    #include <stdio.h>

    int main()

    {

        int i, j, k;

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

        {

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

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

            {

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

            }

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

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

            {

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

            }

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

        }

        return 0;

    }