最标准的杨辉三角和一般的杨辉三角

1、最标准的杨辉三角/*编写程序打印杨辉三角形1变形 1 0 0 0111 1 0 01211 2 1 0 。。。。。。1 3 3 1 思路:我们定义一个二维数组,所有元素先初始化为0给数组的第1列和对角线元素赋值为1其余元素a[i][j]=a[i-1][j-1]+a[i-1][j]输出这个二维数组的下三角*///杨辉三角 如此标准 #include<stdio.h>#include<stdlib.h>#define N 5int main(){int a[N][N]={0};//全为0//初始化二维数组 for(int i=0;i<N;i++){for(int j=0;j<N;j++){if(j==0 || i==j)//注意是j==0而不是i==0{a[i][j]=1;//下面两句与上面等价//a[i][i]=1;//a[i][0]=1;}else{a[i][j]=a[i-1][j-1]+a[i-1][j];}//printf("%-8d",a[i][j]);//直接边赋值边打印 }//printf("\n"); }for(int i=0;i<N;i++) { printf("%*d",30-i*2,a[i][0]);//打印第一列 ,是*2,这里必须是下面控制字符的一半,才能落在中间的位置,代表每一行第一个数字与行的最前面的间隔字符//这里的步长必须是下面的一半,才能落在 中间,,这里30是一个随机的数字 /*11 0 0 0111 1 0 01211 2 1 0*/ for(int j=1;j<=i;j++)//之所以从j=1开始循环 ,因为第一列已经输出,要提取出来控制每行与行首的间隔{printf("%4d",a[i][j]);//%4d代表4个字符的宽度 ,如果这里改为%6d,则上面改为30-i*3 } printf("\n");}//getchar(); system("pause") ;}

二、一般的杨辉三角

/*编写程序打印杨辉三角形1变形 1 0 0 0111 1 0 01211 2 1 0 。。。。。。1 3 3 1 思路:我们定义一个二维数组,所有元素先初始化为0给数组的第1列和对角线元素赋值为1其余元素a[i][j]=a[i-1][j-1]+a[i-1][j]输出这个二维数组的下三角*/#include<stdio.h>int main(){int a[4][4]={0};printf("全部初始化为0\n");for(int i=0;i<4;i++){for(int j=0;j<4;j++){printf("%-6d",a[i][j]);}printf("\n");} for(int i=0;i<4;i++){for(int j=0;j<4;j++){if(i==j || j==0){a[i][j]=1;//下面两句与上面等价//a[i][i]=1;//a[i][0]=1;}else{a[i][j]=a[i-1][j-1]+a[i-1][j];}}}//输出杨辉三角for(int i=0;i<4;i++){for(int j=0;j<=i;j++)//j<4的话结果先前赋值为0的全变为随机的数了 {printf("%-6d",a[i][j]);}printf("\n");}return 0;}

他们不计后果的彼此拥抱,握紧双手,怕天会亮,怕爱会走。

最标准的杨辉三角和一般的杨辉三角

相关文章:

你感兴趣的文章:

标签云: