用C语言实现杨辉三角形,从键盘输入整数n,在屏幕上输出n+1行杨辉三角形
时间: 2024-05-13 19:15:01 浏览: 157
以下是用C语言实现杨辉三角形的代码:
```c
#include <stdio.h>
int main() {
int n, i, j, coef = 1;
printf("请输入要打印的行数:");
scanf("%d", &n);
for (i = 0; i <= n; i++) {
for (j = 0; j <= i; j++) {
if (j == 0 || i == 0)
coef = 1;
else
coef = coef * (i - j + 1) / j;
printf("%d ", coef);
}
printf("\n");
}
return 0;
}
```
代码中,首先从键盘输入一个整数n表示要打印的行数。然后使用两个循环嵌套,外层循环控制行数,内层循环控制列数。在内层循环中,首先判断当前列是否为第一列或当前行是否为第一行,如果是,则系数为1;否则,根据杨辉三角形的规律计算出系数。最后,在每个位置上打印出系数,并在行末换行,完成整个杨辉三角形的打印。
相关问题
编写一个C语言程序,从键盘输入整数n(n>=0并且n<=12),在屏幕上输出们+1行杨辉三角形。
以下是实现该功能的C语言程序,注释中有详细的解释:
```c
#include <stdio.h>
// 定义计算组合数的函数
int combination(int n, int m)
{
if (m == 0 || m == n)
return 1;
else
return combination(n - 1, m - 1) + combination(n - 1, m);
}
int main()
{
int n; // 定义杨辉三角形的行数
printf("请输入要输出的杨辉三角形的行数:");
scanf("%d", &n);
// 输出杨辉三角形
for (int i = 0; i < n; i++)
{
for (int j = 0; j <= i; j++)
{
printf("%d ", combination(i, j));
}
printf("\n");
}
return 0;
}
```
运行结果:
```
请输入要输出的杨辉三角形的行数:7
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
```
用c语言实现在屏幕上显示如下杨辉三角形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ... ... ... ... ... ... ... 【输入形式】 从键盘输入整数n(n>=0且n<=12) 【输出形式】 在屏幕上输出n+1行杨辉三角形。 【输入样例】 3 【输出样例】 ------1 ----11 --121 1331 其中-和*都是空格位 即每个数字占四位!并且不使用int方法
以下是用 C 语言实现在屏幕上显示杨辉三角的代码:
```c
#include <stdio.h>
int main() {
int n, i, j;
printf("请输入n(n>=0且n<=12):");
scanf("%d", &n);
if (n < 0 || n > 12) {
printf("输入有误!\n");
return 0;
}
long long a[n][n];
for (i = 0; i < n; i++) {
for (j = 0; j <= i; j++) {
if (j == 0 || j == i) {
a[i][j] = 1;
} else {
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
printf("%4lld", a[i][j]);
}
printf("\n");
for (j = i + 1; j < n; j++) {
printf(" ");
}
}
return 0;
}
```
这里使用了一个二维数组 `a` 来存储杨辉三角形中的每个数字,其中第 `i` 行第 `j` 个数字为 `a[i][j]`。在循环中,当 `j` 为 0 或 i 时,将 `a[i][j]` 赋值为 1,否则根据杨辉三角的性质,`a[i][j]` 应等于上一行的 `a[i-1][j-1]` 和 `a[i-1][j]` 相加。最后在输出每个数字时,使用 `%4lld` 控制输出格式,保证每个数字占四位,左对齐。同时在每行输出完后,根据杨辉三角形的规律,输出对应的空格。
阅读全文