У вас нет фигурных скобок вокруг операторов после else
, поэтому похоже, что вы удвоите- printf()
, когда условие if
-элемента истинно.
Я скопировал исходный код на codechef.com/ide и изменил значение io на num, чтобы его просто присвоили 6, что привело к следующему выводу:
Enter the number of rows of pascal triangle you want:
11
1111
11211
113311
1146411
1151010511
Похоже, ты рядом, но ты хочешь 1, 11, 121, 1331 и т. Д., Верно?
Завершение случая else привело к следующему выводу:
if (k == 0 || k == rows)
{
a[rows][k] = 1;
printf("(%ld)", a[rows][k]);
}
else{// START OF BLOCK HERE
a[rows][k] = (a[rows - 1][k - 1]) + (a[rows - 1][k]);
printf("(%ld)", a[rows][k]);
}//END OF BLOCK HERE, NOTE THAT IT INCLUDES THE PRINT IN THE ELSE CASE NOW
OUTPUT:
Enter the number of rows of pascal triangle you want:
(1)
(1)(1)
(1)(2)(1)
(1)(3)(3)(1)
(1)(4)(6)(4)(1)
(1)(5)(10)(10)(5)(1)
Но я добавил (), чтобы мне было понятнее. Я также добавил «/ n» в конец первого printf, который запрашивает значение num, чтобы первая строка была на новой строке.
printf("Enter the number of rows of pascal triangle you want:\n");