Как напечатать эту серию? (1 \ n 2 3 \ n 4 5 6 \ n 7 8 9 10 ... ... ...) - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь напечатать следующие серии:
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 ]

2 голосов
/ 09 апреля 2019

Для печати этих чисел вам понадобится счетчик, который начинается с 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.

0 голосов
/ 09 апреля 2019

Вы должны вести отдельные счетчики для чисел и количества чисел в строке.

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++;
}
...