用whlie循环打印出来的图像和要求打印出来的图像不一样:(

用whlie循环要求打印出下面这个图像

1
22
333

要求输入一个整数n(1<=n<=30),输入n值为3

可编写出来的却是

1
12
123 

下面是我写的代码

{
    int a,b;
    scanf("%d",&a);
    while (a<=3)
    {
        b=1;
        while (b<=a)
        {
            printf("%d",b);
            b=b+1;
        }
        printf("\n");
        a=a+1;
    }
    
   
    return 0;
}

修改代码如下:


int main()
{
    int a,b=1;
    scanf("%d",&a);
    int j=1;
    while (j<=a)
    {
        int i=1;
        while (i<=j)
        {
            printf("%d",b);
            i = i+1;
        }
        b=b+1;
        printf("\n");
        j=j+1;
    }
    return 0;
}

img

修改如下,供参考:

#include <stdio.h>
int main()
{
    int a,b,n=1; //修改
    scanf("%d",&a);
    while (n<=a)    //while (a<=3) 修改
    {
        b=1;
        while (b<=n) //while (b<=a)修改
        {
            printf("%d",b);
            b=b+1;
        }
        printf("\n");
        n++;     //a=a+1; 修改
    }
    return 0;
}