(含最容易理解的詳細註釋)實驗7-2-6 列印楊輝三角 (20分)

2020-08-10 07:39:52

在这里插入图片描述

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

在这里插入图片描述