这道题不懂,怎么做

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

qq_幸运之光_0

2016-02-19 17:03

#include <stdio.h>
int main()
{
    int i, j, k;
    for(i=1; i<5; i++)
    {
        /* 观察每行的空格数量,补全循环条件 */
        for(j=;j<;j++)  
        {
            printf(" ");    //输出空格
        }
        /* 观察每行*号的数量,补全循环条件 */
        for(k=;k<;k++) 
        {
            printf("*");   //每行输出的*号
        }
        printf("\n");     //每次循环换行
    }
    return 0;
}


写回答 关注

3回答

  • 老Ma
    2016-03-01 16:57:36

    当i=1时,第一个for循环, 表示第一行。然后第二个for循环,因为j<=4, j=i=1,所以第二个for循环需要运行四遍,输出四个空格。然后第三个for循环,k <= 2 * i - 1是规定运行几次,当i=1时,k<=1,因为k=1,所以第三个for循环运行一次,输出一个*号。所以第一行就是四个空格,一个*号。

    当i=2时, 第一个for循环, 表示第二行。然后第二个for循环,因为j<=4, j=i=2,所以第二个for循环需要运行三遍,输出三个空格。然后第三个for循环,k <= 2 * i - 1是规定运行几次,当i=2时,k<=3,因为k=1,所以第三个for循环运行三次,输出三个*号。所以第二行就是三个空格,三个*号。

    ...........

    以此类推

    慕哥2204...

    那*的位置怎么确定的?

    2016-04-03 11:27:57

    共 1 条回复 >

  • 不偏不易
    2016-02-20 13:36:41

    这道题有很多种方法,不一定要按照题目的标准答案,你可以自己用VC6。0测试。能输出一样的图案就行。

    标准答案思路:第i行5-j个空i*2-1个*,三角形为第一行4个空格1个*,第二行3个空格3*,第三行2个空格5*,第四行1空7*.

    当然你也可以当成第一行3个空格1个*,第二行2个空格3*,第三行1个空格5*,第四行0空7*.只是要循环条件改一下

  • qq_康斯坦丁_0
    2016-02-19 17:34:14

    #include <stdio.h>

    int main()

    {

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

C语言入门

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

926215 学习 · 20797 问题

查看课程

相似问题