do while循环嵌套实现数字方阵

12345
23456
34567
45678
56789,输出这个方阵。使用do-while语句作为外循环,实现按行数循环,用while循环作为内循环,循环输出每行的5个数,但每个数据应通过计算得到,每个数据之间至少有1个空格,且要求数据左对齐。

不能使用数组

我在算法阶段就不知道该怎么设计,这个用循环该怎么做啊

以下是我的原码

#include<stdio.h>
int main()
{
int num = 0;int i=0 ;
while(1)
{
if (num == 9)
break;
if (i >= 0 && i < 4)
num++; i++;
printf("%d ", num);
if (i >= 1 && i < 5)
num++; i++;
printf("%d ", num);
if (i >= 2 && i < 6)
num++; i++;
printf("%d ", num);
if (i >= 3 && i < 7)
num++; i++;
printf("%d ", num);
switch (num)
{
case 4:
num = 5;
printf("%d\n", num);
num = num - 3; i = 1;
printf("%d ", num);
continue;
case 5:
num = 6;
printf("%d\n", num);
num = num - 3; i = 2;
printf("%d ", num);
continue;
case 6:
num = 7;
printf("%d\n", num);
num = num - 3; i = 3;
printf("%d ", num);
continue;
case 7:
num = 8;
printf("%d\n", num);
num = num - 3; i = 4;
printf("%d ", num);
case 8:
num = 9;
printf("%d\n", num);
continue;
}
/if (num >= 4 && num < 9)
{
num = num + 1;
printf("%d\n ", num);
num = num - 4; i = 0;
continue;
}
if (num == 9)
break;
/
}
return 0;
}

题目要求是:
使用do-while语句作为外循环,实现按行数循环,用while循环作为内循环,循环输出每行的5个数,但每个数据应通过计算得到,每个数据之间至少有1个空格。


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

输出结果:

img