1. 程式人生 > >二維陣列實現楊輝三角

二維陣列實現楊輝三角

 參考連結:http://c.biancheng.net/view/495.html

#include <stdio.h>

#define N 20

int main(int argc, const char *argv[])
{
	int a[N][N] = {{0}};             /*定義二維陣列a[20][20]*/
	int i, j, k;
	int n = 0;

	while(n<=0 || n>20){             /*控制列印的行數不要太大,過大會造成顯示不規範*/
		printf(">:");
		scanf("%d",&n);
	}

	for (i = 0; i < n; i++){
		a[i][0] = 1;                    /*兩邊的數令它為1,因為現在迴圈從1開始,就認為a[i][0]為第一個數*/
		for(j = 1; j <= i; j++)
			a[i][j] = a[i-1][j-1] + a[i-1][j];     /*除兩邊的數外都等於上兩頂數之和*/ 
	}

	for (i = 0; i < n; i++){
		for(k = 0; k <= n-i; k++)
			printf("   ");              /*這一行主要是在輸出數之前打上空格佔位,讓輸出的數更美觀*/
		for(j = 0; j <= i; j++)          /*j<=i的原因是不輸出其它的數,只輸出我們想要的數*/
			printf("%-6d",a[i][j]);
		putchar('\n');                   /*當一行輸出完以後換行繼續下一行的輸出*/
	}

	return 0;
}

結果如下