2017-01-11 4 views
-2

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

Pascal's Triangle

Вот мои функции:

void print_pascal_triangle(int n) 
{ 
    int i = 0; 

    while (i <= n) 
    { 
    print_space(i, n); 
    print_pascal_line(n); 
    i++; 
    printf("\n"); 
    } 
} 

void print_pascal_line(int i) 
{ 
    int k = 0, num = 1; 

    printf("1"); 

    while (k < i) 
    { 
    num = (num *(i-k))/(k+1); 
    printf(" %d", num); 
    k++; 
    } 

} 

void print_space(int i, int n) 
{ 
    int space=i; 
    while (space < n) 
    { 
    printf(" "); 
    space++; 
    } 
} 

Вот результат я получаю при п = 5:

Output

+5

Вы получите правильный вывод при печати 'print_pascal_line (i)'. –

+0

Не размещайте изображения текста! Кодового форматирования достаточно, чтобы сохранить отступы. – Olaf

ответ

3

Вам нужно позвонить print_pascal_line(i); вместо print_pascal_line(n);