C语言实现杨辉三角输出 - 代码示例及详解
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int triangle[n][n];
// 初始化杨辉三角的第一行和对角线上的元素为1
for(int i = 0; i < n; i++) {
triangle[i][0] = 1;
triangle[i][i] = 1;
}
// 计算杨辉三角的其他元素
for(int i = 2; i < n; i++) {
for(int j = 1; j < i; j++) {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
}
// 输出杨辉三角
for(int i = 0; i < n; i++) {
for(int j = 0; j <= i; j++) {
printf("%d ", triangle[i][j]);
}
printf("\n");
}
return 0;
}
代码详解:
-
头文件包含:
#include <stdio.h>,包含标准输入输出库,用于获取用户输入和输出结果。 -
主函数:
int main() { ... },程序的入口点。 -
输入:
scanf("%d", &n);,从标准输入读取一个整数并存储到变量n中,n表示要输出的杨辉三角的行数。 -
二维数组:
int triangle[n][n];,声明一个二维数组triangle,用来存储杨辉三角的元素。数组的大小为n行n列。 -
初始化:
for(int i = 0; i < n; i++) { triangle[i][0] = 1; triangle[i][i] = 1; },将杨辉三角的第一行和对角线上的元素初始化为 1。 -
计算:
for(int i = 2; i < n; i++) { for(int j = 1; j < i; j++) { triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]; } },根据杨辉三角的规律,计算其他元素的值。每个元素的值等于其上一行对应位置的两个元素之和。 -
输出:
for(int i = 0; i < n; i++) { for(int j = 0; j <= i; j++) { printf("%d ", triangle[i][j]); } printf("\n"); },遍历二维数组,将每个元素的值输出到标准输出,每个数字之间用空格隔开,每行输出完毕后换行。
运行结果:
当用户输入 5 时,程序会输出以下内容:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
总结:
以上代码实现了使用 C 语言输出杨辉三角的功能。您可以修改代码中的 n 值来改变输出的行数。这个例子展示了如何使用循环和二维数组来解决实际问题,也体现了 C 语言在算法实现中的强大功能。
拓展:
除了使用二维数组,还可以使用递归等其他方法来实现杨辉三角的输出。您可以尝试使用不同的方法来实现,并比较它们之间的效率和可读性。
原文地址: https://www.cveoy.top/t/topic/eEuD 著作权归作者所有。请勿转载和采集!