思路:
用二维数组来表示杨辉三角,由于每行端点与结尾的数为1,所以,可以用语句for (i = 0; i < n; i++){y[i][0] = 1;y[i][i] = 1;}表示,其他的数,等于临近的上面的两个数之和,可以用语句for (i = 2; i < n; i++){for (j = 1; j < i; j++){y[i][j] = y[i - 1][j - 1] + y[i - 1][j];}}表示,最后,再打印出来即可
运行结果:
完整代码:
#include<stdio.h>
#include<windows.h>
#pragma warning (disable:4996)
#define N 100
void main()
{
int y[N][N];
int i = 0;
int j = 0;
int n = 0;
printf("请输入您想输出几行杨辉三角(n<100) > ");
scanf("%d", &n);
for (i = 0; i < n; i++){
y[i][0] = 1;
y[i][i] = 1;
}
for (i = 2; i < n; i++){
for (j = 1; j < i; j++){
y[i][j] = y[i - 1][j - 1] + y[i - 1][j];
}
}
for (i = 0; i < n; i++){
for (int k = 0; k < n -i;k++){
printf(" ");
}
for (j = 0; j <= i; j++){
printf("%4d", y[i][j]);
}
printf("\n");
}
system("pause");
}