1
1 1通过输入的行数,创建一个二维数组用来存储杨辉三角的值。外层循环遍历行数,内层循环遍历每行的元素。对于一个给定的元素,如果它处于首位,值应该为1;否则值应该是由上一行的两个相邻元素相加得到的。在打印每个元素的值时,打印一个空格以将它们隔开。
#include <stdio.h>
int main() {
int rows;
printf("请输入行数: ");
scanf("%d", &rows);
int pascalsTriangle[rows][rows];
for (int i = 0; i < rows; i++) {
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) {
pascalsTriangle[i][j] = 1;
} else {
pascalsTriangle[i][j] = pascalsTriangle[i - 1][j - 1] + pascalsTriangle[i - 1][j];
}
printf("%d ", pascalsTriangle[i][j]);
}
printf("\n");
}
return 0;
}
int[][] array = new int[10][10];
for (int i = 0; i < 10; i++) {
array[i][0] = 1;
array[i][i] = 1;
}
for (int i = 2; i < 10; i++) {
for (int j = 1; j < i; j++) {
array[i][j] = array[i - 1][j - 1] + array[i - 1][j];
}
}
for (int i = 0; i < 10; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
不知道你这个问题是否已经解决, 如果还没有解决的话:参考资料中没有完整的代码可以直接使用,但是从段落8可以看出使用两重循环来打印杨辉三角的形式,其中要注意的是要把二维数组的第0列和对角线全部赋值为1,其他元素根据左上和正上方的元素之和来计算即可。
下面是可供参考的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, i, j;
printf("请输入杨辉三角的行数:\n");
scanf("%d", &n);
int arr[n][n]; // 定义一个n行n列的数组,存储每个数的值
for (i = 0; i < n; i++) {
arr[i][i] = arr[i][0] = 1; // 对角线和第0列元素赋值为1
for (j = 1; j < i; j++) {
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; // 根据规律计算每个元素的值
}
}
for (i = 0; i < n; i++) {
for (j = 0; j <= i; j++) {
printf("%d ", arr[i][j]); // 按行打印每个元素的值
}
printf("\n"); // 换行
}
return 0;
}
这个程序使用了一个n行n列的二维数组来保存每个元素的值,然后按行打印出来。在内层循环中,根据杨辉三角的规律计算每个元素的值,然后在外层循环中按行打印出来即可。