配有详细的注释,不理解的可私信我
源代码如下:
//杨辉三角(输出n行,n从键盘输入)
#include <stdio.h>
int main() {
int n,i,j; //以 i 作为行标,j 作为列标
scanf("%d",&n);
int a[n][n]; //定义二维数组
for(i=0; i<n; i++) {
for(j=1; j<=n-i; j++) {
printf(" "); //此处为两个空格
}
for(j=0; j<n; j++) {
if(j==0||i==j) a[i][j]=1; //将第一列及对角线赋值为 1
else{
if(i>j) a[i][j]=a[i-1][j]+a[i-1][j-1]; //对角线下面的赋值
}
if(i>=j) printf("%4d",a[i][j]); //此处输出的长度必须是前面输出空格的二倍
}
putchar('\n'); //换行
}
return 0;
}