2014-10-07 3 views
-2

Я пытаюсь создать функцию, которая будет печататьпечать 1, 2 1, 3 2 1, 4 3 2 1 сторона пирамиды в C

1 
2 1 
3 2 1 
4 3 2 1 

и т.д., в C, до 20 смогу его распечатать

1 
1 2 
1 2 3 
1 2 3 4 

просто отлично. Помощь? Это то, что у меня есть до сих пор.

int i, j; 
for(i = 1; i<=20; i++) { 
    for(j=1; j<=i; j++) { 
    printf("%3d", j); 
    } 
    printf("\n"); 
} 

ответ

3

Вы можете просто поменять места второй петли, чтобы перейти от большего числа к меньшему числу, как, например:

int i, j; 
for(i = 1; i<=20; i++) { 
    for(j=i; j>0; j--) { 
    printf("%3d", j); 
    } 
    printf("\n"); 
} 

Начнется с печатью наибольшего числа и заканчиваться одним.

1

Когда вы for(j=1; j<=i; j++) вы начинаете дж при 1 и подсчитывая, пока он не достигнет i. То, что вы хотите сделать, начинается с i и обратного отсчета (--), пока оно не достигнет 1.

0

Попробуйте изменить вас во втором для цикла до for(j=i;j>=1;j--). Он напечатает 1 2 1 3 2 1 4 3 2 1 and so on... Я надеюсь, что это то, что вы просили.

Смежные вопросы