C语言学习记录之输出杨辉三角形
#include <stdio.h>
#define N 10 //输出前十行
int main() {int arr[N][N];for (int i = 0;i < N;i++) { arr[i][0] = 1; // 首先给每行第一个和最后一个赋值1arr[i][i] = 1;}// 从第三行起,除了每行的1以外,其他数为上一行本列的数加上上一行前一列的数// 如 a[i][j] = a[i-1][j] + a[i-1][j-1];for (int i = 2;i < N;i++) {for (int j = 1;j <= i - 1;j++) {arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];}}for (int i = 0;i < N;i++) {for (int j = 0;j < i + 1;j++) {printf("%d\t", arr[i][j]);}printf("\n");}return 0;
}
方法二:
int main() {int arr[10][10];for (int i = 0;i < 10;i++) {for (int j = 0;j < i + 1;j++) {if (j == 0 || j == i) {arr[i][j] = 1;}else {arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}}for (int i = 0;i < 10;i++) {for (int j = 0;j < i + 1;j++) {printf("%5d", arr[i][j]);}printf("\n");}return 0;
}
输出结果: