如何打印此系列?(1 \ n 2 3 \ n 4 5 6 \ n 7 8 9 10 ... ...)

时间:2019-04-09 13:33:12

标签: c loops series

我正在尝试打印以下系列:
1
2 3
4 5 6
7 8 9 10
... ... ..
我程序的输入包含一个整数 n ,它确定要打印的行数。

我尝试对其进行编码,但得到以下输出:
1
2 3
3 4 5
4 5 6 7
... ... ...

#include<stdio.h>
int main()
{
    int n,i,j,t,m;
    scanf("%d", &n);
    for(i=1;i<=n;i++)
    {
        for(j=i,t=1;t<=i;j++,t++)
        {
            printf("%d ",j);
        }
        printf("\n");
    }
}

2 个答案:

答案 0 :(得分:2)

要打印这些数字,您需要一个计数器,该计数器以1开始,每次打印都以1递增,并且永远不会被任何东西重置。像这样调整循环:

int main()
{
    int n, i, j, t = 1;
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        for (j = 1; j <= i; j++, t++)
        {
            printf("%d ", t);
        }
        printf("\n");
    }
}

请注意如何将t设置为1,并且只增加t++而不会像以前一样进行重置。另外,您应该打印t,而不是j

答案 1 :(得分:0)

您应该为数字和每行数字维护单独的计数器。

int nr = 1, target;
int nrsperline = 1, i;

scanf("%d", &target);
while (nr <= target) {
    for (i = 0; i < nrsperline; i++) {
         printf("%d ", nr++);
    }
    printf("\n");
    nrsperline++;
}