满意答案
_keeva
2014.10.20
采纳率:50% 等级:12
已帮助:3998人
#include
#include
int main()
{
int i, j, n = -1;
int **trangle;
while(n > 34 || n < 0)
{
puts("请输入杨辉三角层数(支持34层):");
scanf("%d", &n);
}
trangle = (int **)malloc(n * sizeof(int *));
trangle[0] = (int*)malloc(sizeof(int));
trangle[1] = (int*)malloc(sizeof(int));
trangle[0][0] = 1;
trangle[1][0] = 1;
trangle[1][1] = 1;
for(i = 2; i < n; i++)
{
trangle[i] = (int *)malloc((i + 1) * sizeof(int));
trangle[i][0] = 1;
trangle[i][i] = 1;
for(j = 1;j < i; j++)
{
trangle[i][j] = trangle[i - 1][j - 1] + trangle[i - 1][j];
}
}
for(i = 0;i < n;i++)
{
for(j = n;j > i;j--)
printf(" ");
for(j = 0;j <= i;j++)
{
printf("%10d", trangle[i][j]);
}
printf("\n");
}
for(i = 0;i < n; i++)
{
free(trangle[i]);
}
free(trangle);
return 0;
}
00分享举报