在C语言中,运用数组,编写程序,生成并输出杨辉三角形(10行)。
http://blog.sina.com.cn/s/blog_49fb2853010004lt.html
这种问题,下回自己百度一下,代码一大堆
这个问题才回答过
http://ask.csdn.net/questions/158134
杨辉三角形的第n行的第m个元素等于n!/((n-m)!*m!)
因此编程如下
int x = 10;
for (int n = 1; n < x; n++)
{
for (int m = 1; m <= n; m++)
printf("%d\t", p(n) / (p(n - m) * p(m)));
printf("\n");
}
再写个阶乘函数:
int p(int x)
{
int r = 1;
if (x < 2) return r;
for (int i = 2; i <= x; i++)
r = r * i;
return r;
}
#include <stdio.h>
int main() {
int i, j;
int rows = 10; // 杨辉三角形的行数
int coef[rows][rows]; // 存储组合数的二维数组
// 计算组合数,存储到数组中
for (i = 0; i < rows; i++) {
coef[i][0] = 1; // 第一列的元素为1
coef[i][i] = 1; // 对角线上的元素为1
for (j = 1; j < i; j++) {
coef[i][j] = coef[i-1][j-1] + coef[i-1][j]; // 其他元素为上一行相邻两个元素之和
}
}
// 输出杨辉三角形
for (i = 0; i < rows; i++) {
// 每行输出行号个空格,使输出成三角形形状
for (j = 0; j < rows-i; j++) {
printf(" ");
}
for (j = 0; j <= i; j++) {
printf("%d ", coef[i][j]);
}
printf("\n"); // 换行
}
return 0;
}