#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
int main()
{
int n, i, j, k, arr[10][10] = {0}; //先将二维数组全部初始化为0,为后面计算不是1的元素做准备。
scanf("%d", &n);
for ( i = 0; i < n; i++) //再将所有属于杨辉三角的元素初始化为1
for ( j = 0; j <= i; j++){ //很容易得出列数是 <= 行数的
arr[i][j] = 1;
}
for ( i = 2; i < n; i++) //从第三行开始一直到最后一行
for ( j = 1; j <= i - 1; j++) //从第二列开始一直到 <= 正在遍历的行数 - 1
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1]; //计算杨辉三角中不为1的元素,即为正上方与左斜上方元素的和
for ( i = 0; i < n; i++){
for ( k = 0; k < n - 1 - i; k++) //打印空格,很容易找出每行打印空格书的规律
printf(" ");
for ( j = 0; j <= i; j++) //打印数字
printf("%4d", arr[i][j]);
printf("\n"); //每打印完一行换行
}
return 0;
}
(含最容易理解的详细注释)实验7-2-6 打印杨辉三角 (20分)
猜你喜欢
转载自blog.csdn.net/Mrrr_Li/article/details/107903925
今日推荐
周排行