输出杨辉三角

int main()
{
int s = 1;
int h;
int i, j;
scanf("%d",&h);
printf("1\n");
for (i = 2; i <= h;s=1,i++)
{
printf("1 ");
for (j = 1; j = i - 2; j++)
printf("%d ",(s=(i-j)*s/j));
printf("1\n");
}
getchar();
return 0;
}


以下是使用 **C语言** 输出杨辉三角的完整代码,支持用户输入行数,并详细解释每部分代码的作用。 --- ## ✅ 输出杨辉三角的 C 语言代码: ```c #include <stdio.h> int main() { int rows; printf("请输入杨辉三角的行数: "); scanf("%d", &rows); // 创建二维数组来存储杨辉三角的值 int triangle[rows][rows]; // 构建杨辉三角 for (int i = 0; i < rows; i++) { triangle[i][0] = 1; // 每一行第一个元素为1 triangle[i][i] = 1; // 每一行最后一个元素也为1 // 中间元素等于上一行相邻两个元素之 for (int j = 1; j < i; j++) { triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j]; } } // 打印杨辉三角格式输出) for (int i = 0; i < rows; i++) { // 打印前导空格,使输出居中 for (int k = 0; k < rows - i - 1; k++) { printf(" "); } // 打印当前行的元素 for (int j = 0; j <= i; j++) { printf("%6d", triangle[i][j]); } printf("\n"); } return 0; } ``` --- ## ✅ 示例运行: 输入: ``` 请输入杨辉三角的行数: 5 ``` 输出: ``` 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 ``` --- ## 🔍 代码解释: ### 1. 数据结构: - 使用二维数组 `triangle[rows][rows]` 来存储杨辉三角的值; - `triangle[i][j]` 表示第 `i` 行第 `j` 列的数(从 0 开始计数)。 ### 2. 构建逻辑: - 第 `i` 行的第 0 个元素第 `i` 个元素始终为 `1`; - 中间元素由公式 `triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]` 得出。 ### 3. 打印逻辑: - 使用循环打印前导空格,使输出呈三角形排列; - 使用 `%6d` 格式输出,让数字对齐美观。 --- ## 🚀 进阶扩展: - 可以将杨辉三角用 **一维数组** 实现,节省空间; - 可以用 **递归** 或 **组合公式** `C(n, k) = n! / (k!(n-k)!))` 来生成每一行; - 可以将结果写入文件或图形化显示(使用图形库如 SDL、EasyX)。 --- ##
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值