以下是一个简单的 C 语言程序,用于打印杨辉三角的前 n 行:
- #include
- int main() {
- int n, i, j;
- int arr[n][n];
- printf("Enter the number of rows: ");
- scanf("%d", &n);
- arr[0][0] = 1;
- for (i = 1; i < n; i++) {
- arr[i][0] = 1;
- for (j = 1; j < i; j++) {
- arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
- }
- arr[i][i] = 1;
- }
- for (i = 0; i < n; i++) {
- for (j = 0; j <= i; j++) {
- printf("%d ", arr[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
该程序使用二维数组存储杨辉三角的元素,首先要求用户输入要打印的行数 n,然后通过循环计算并存储杨辉三角的元素,最后再循环打印整个三角形。
好的,以下是对上述C语言程序中杨辉三角的实现过程的详细解释:
- 首先定义一个二维数组arr来存储杨辉三角的元素。数组的行数和列数都是用户输入的变量n。
- 初始化第一行和第一列的元素为1。这是因为在杨辉三角中,每一行的第一个元素和最后一个元素都是1。
- 使用两个嵌套的循环来计算数组中其他元素的值。外层循环控制行数,从1到n-1,内层循环控制列数,从1到当前行数减1。
- 在内层循环中,根据杨辉三角的定义,当前元素的值等于上一行的前一个元素和当前元素之和。即arr[i][j] = arr[i-1][j-1] + arr[i-1][j]。
- 在内层循环结束后,将当前行数的最后一个元素设置为1,以符合杨辉三角的规则。
- 最后使用两个嵌套的循环来打印整个三角形。外层循环控制行数,从0到n-1,内层循环控制列数,从0到当前行数。在内层循环中,打印当前元素的值,并在每一行结束后打印一个换行符。
注意:由于数组的大小是根据用户输入的n来确定的,因此需要在程序中先定义变量n并输入其值,然后再定义二维数组arr。