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

有人知道用while的语句怎么打吗?我试了下,但不知道哪里错了

#include <stdio.h>
int main()
{
    int a=1,b=1,c=1;
    while(a<5)
    {
        while(b<5-a)
        {
            b++;
            printf(" ");
        }
        while(c<=2*a-1)
        {
            c++;
            printf("*");
        }
        a++;
        printf("\n");
    }
    return 0;
}

我输出的是

   *
**
**
**

提问者:章健松 2019-10-11 16:29

个回答

  • qq_青鸾_03394339
    2019-10-11 21:44:19
    已采纳

    http://img1.mukewang.com/5da0872c0001c67401980370.jpg。。。

  • 章健松
    2019-10-12 01:10:31

    #include <stdio.h>
    int main()
    {
        int a=1;
        do
        {
            int b=1;
            do
            {
                printf(" ");
                b++;
            }while(b<=5-a);
                int c=1;
            do
            {
                printf("*");
                c++;
            }while(c<=2*a-1);
            printf("\n");
            a++;
        }while(a<5);
        return 0;
    }

    这个是我用do-while的结构打出来的

  • 章健松
    2019-10-12 01:03:43

    有兴趣想深入了解的可以查看我的笔记,我一般是采用更多的方法去解决一道题目的


  • 章健松
    2019-10-12 01:00:52

    #include <stdio.h>     
    int main()
    {
        int a=1;
        while(a<5)
        {
            int b=1;
            while(b<5-a)
            {
                printf(" ");
                b++;
            }
            int c=1;
            while(c<=2*a-1)
            {
                printf("*");
                c++;
            }
            printf("\n");
            a++;
        }
        return 0;
    }

    这个是我自己用while语句打的,想深入学习的可以了解一下,这个是正确的,同学们可以尝试一下,虽然我也是新生

  • 章健松
    2019-10-12 00:58:28

    为什么会错呢?

    因为如果int a,int b,int c放在刚才的那个位置的话,那么在第二次循环的时候b的值就不再等于1了,而是等于2了,c也是一样的,所以输入在里面是为了重新赋值                   

     这是我本人的理解

  • qq_青鸾_03394339
    2019-10-11 21:40:49

    #include <stdio.h>int main(){int i=1, j, k;while (i<5){j = i;while (j<5){printf(" ");j++;}k = 0;while (k<2*i-1){printf("*");k++;}i++;printf("\n");}return 0;}