(含最容易理解的详细注释)实验7-2-6 打印杨辉三角 (20分)

在这里插入图片描述

#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;
} 

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Mrrr_Li/article/details/107903925