下面为大家介绍用二维数组来输出任意行的杨辉三角。有以下步骤:
1:利用一个全局变量来控制数组,从而控制杨辉三角大小。
2:分别用for循环进行对杨辉三角进行赋值。(利用它每个数等于它上方两个数和的规律)
3:控制格式进行输出。
int a[100][100]; //创建一个全局变量来控制数组大小
int main()
{int i = 0, j = 0, k, n;scanf("%d", &n);for (i = 0; i < n; i++){a[i][0] = 1; //先把左右两边的1赋值完a[i][j] = 1;j += 1;}for (i = 2; i < n; i++) //用来把杨辉三角各个值进行赋值 for (j = 1; j <= i - 1; j++)a[i][j] = a[i - 1][j - 1] + a[i - 1][j];k = 2 * n - 2;for (i = 0; i < n; i++){if (k >= 0){while (k >= 0){k -= 1;printf(" ");//完善杨辉三角格式}for (j = 0; j <= i; j++){printf("%-4d", a[i][j]);}printf("\n");k = 2 * n - i * 2 - 4;//每换行一次,下一行的1就往前移4格 } //所以在于原有基础上-4 } //因为1我用的是-4%d。return 0;
}
输入行数,输出如下:
这是输出10行的杨辉三角:
#include <stdio.h>
int main()
{int i=0, j=0, a[10][11],k;for (i = 0; i < 10; i++){a[i][0] = 1;a[i][j] = 1;j += 1;}for (i = 2; i < 10; i++)for (j = 1; j <= i - 1; j++)a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; k = 19;for (i = 0; i < 10; i++){if (k >= 0){while (k > 0){k -= 2;printf(" ");}for (j = 0; j <= i; j++){printf("%-4d", a[i][j]);}printf("\n");k = 17 - i * 2;}}return 0;
}