求杨辉三角的前n行数据。
输入格式:
输入n(n<10)值。
输出格式:
输出杨辉三角的前n行数据,每个数据占4列。
输入样例:
5
输出样例:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
#include <stdio.h>
int main() {
int n;
printf("请输入 n 值(n < 10):");
scanf("%d", &n);
// 创建二维数组存储杨辉三角数据
int triangle[n][n];
// 计算杨辉三角数据
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) {
triangle[i][j] = 1;
} else {
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("%4d", triangle[i][j]);
}
printf("\n");
}
return 0;
}
- 输入处理: 使用
scanf
函数获取用户输入的整数 n。在这个问题中,我们假设用户会输入合法的整数,因此不需要进行过多的输入验证。如果需要更严格的输入验证,可以考虑添加额外的检查和错误处理。
printf("请输入 n 值(n < 10):"); scanf("%d", &n);
- 杨辉三角的计算与输出: 使用二维数组
triangle
存储杨辉三角的数据。外层循环控制行数,内层循环用于计算每一行的数据。对于每一行,如果是首尾元素,直接赋值为 1,否则根据上一行的数据计算当前位置的值。
for (int i = 0; i < n; i++) { for (int j = 0; j <= i; j++) { if (j == 0 || j == i) { triangle[i][j] = 1; } else { 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("%4d", triangle[i][j]); } printf("\n"); }
这个程序的关键之处在于理解杨辉三角的性质,即每个数是它上方两个数的和。通过合理的嵌套循环和条件判断,我们可以逐行计算杨辉三角的数据,并以规定的格式输出。