Как создать следующий вывод?

#c

#c

Вопрос:

Поскольку я новичок в мире программирования, я сталкиваюсь с небольшой проблемой при написании программы для этого шаблона.Я пробовал много раз, но результат не тот, который я хотел? Шаблон :

  1 
 23 
 456 
 78910 
  

То, что я написал, это :-

 #include<stdio.h> 
#include<conio.h> 
void main() 
{ 
    int num = 1 , j = 1 , x = 1 , i = 1 ; 
    while( j <= 4 ) { 
        while( i <= num ) { 
            printf( "%d", x ) ; 
            x   ; 
            i   ; 
        } 
        num   ; 
        i = ( i   1 ) - num ; 
        j   ; 
    } 
    getch() ; 
} 
  

Комментарии:

1. Вы знаете, что подобный цикл int i = x; while (i < y) { ...; i ; } эквивалентен for (int i = x; i < y; i ) { ... } ?

2. Это должно быть int main() , а не void main() .

3. Если вы хотите печатать что-то в разных строках, вам нужно делать printf("n"); между строками.

4. Новая строка не выводится.

5. @Havenard Он увеличивается на 2, потому что 10 — это 2 цифры, все остальное — всего 1 цифра. Считайте числа, а не цифры.

Ответ №1:

 #include <stdio.h>

int main()
{
    printf("1n23n456n78910n");
    return 0;
}
  

выдает желаемый результат

Комментарии:

1. В лучшем случае это должен быть комментарий. : P

2. Это не должно быть ничем.

3. Здесь происходит серьезная оптимизация.

Ответ №2:

Вам нужно напечатать новую строку после внутреннего цикла:

 #include<stdio.h> 
#include<conio.h>
int main() 
{ 
    int num = 1 , j = 1 , x = 1 , i = 1 ; 
    while( j <= 4 ) { 
        while( i <= num ) { 
            printf( "%d", x ) ; 
            x   ; 
            i   ; 
        } 
        printf("n");
        num   ; 
        i = ( i   1 ) - num ; 
        j   ; 
    } 
    getch();
    return(0);
} 
  

Комментарии:

1. Не уверен, почему downvotes, он действительно выдает желаемый результат. ideone.com/a1bceq return не хватает только этого.

2. Я думаю, что мой отрицательный голос такой же загадочный, как и все положительные голоса для другого ответа.

3. Вы получаете от меня преимущество — просто чтобы сбалансировать бухгалтерские книги

4. проголосовать за решение очевидного вопроса OPs. (проголосуйте за Ed, потому что это заставило меня смеяться)

Ответ №3:

Есть еще один пример:

 int main()
{
    int i, j, num = 1, line = 4;
    for(i = 1; i <=  line ; i  )
    {
        for(j = 0; j < i; j  )
        {
            printf("%d", num);
            num  ;
        }
        printf("n");
    }
    return 0;
}
  

Ответ №4:

С помощью одного цикла:

 # include<stdio.h>
# define LIMIT 100

int main(){
int i, prev=0, next=0, diff=1;
for(i=1;i<LIMIT;i  ){
    printf("%d", i);next  ;
    if(diff == next-prev){
        printf("n");
        diff  ;prev = next = 0;
    }
}
}