输出以下的杨辉三角形(要求输出8行)111.ppt
输出以下的杨辉三角形(要求输出8行) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 …… 杨辉三角形是二项式(x + y)n各项系数规律的表示。其中每一项是上一行其肩上两数之和。 用二维数组来表示杨辉三角形: 或者: 两种方式的编程方法不同的是循环控制。 第一种方式,每行第一个元素置1,对角线元素置1,循环从n = 2开始,每一行从m = 1至 n – 1。 int a[8][8] = {0}, n, m; for(n = 0;n < 8;n++) {a[n][0]=1;a[n][n]=1;} for(n = 2;n < 8;n++) for(m = 1;m < n; m++) a[n][m] = a[n-1][m-1] + a[n-1][m]; 第二种方式: int a[8][9] = {0,1}, n, m; for(n = 1; n < 8; n++) for(m = 1; m <= n +1; m++) a[n][m] = a[n-1][m-1] + a[n-1][m]; 2. 找出二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。 现在考虑一般的情况,即一行可能出现多个最小值元素,一列可能出现多个最大值元素。 构造两个矩阵,一个矩阵反映每行最小值元素位置,一个矩阵反映每列最大值元素位置。 int a[N][M], b[M][N], c[N][M], d[M][N], n,m; void min(int [], int, int []); void max(int [], int, int []); void main(){ for(n = 0; n < N; n++) min(a[n], M, c[n]); for(n = 0; n < M; n++) max(b[n], N, d[n]); for(n = 0; n < N; n++) for(m = 0; m < M; m++) if(c[n][m] && c[n][m] == d[m][n]) cout << “a[” << n << “][”<< m < g) g = x[m]; for(m = 0; m < n; m++) if( x[m] == g) y[m] = 1; else y[m] = 0; } 对如下矩阵,求鞍点: 3. 编写一个函数把一个10进制数转换成16进制数。 用一个字符数组来存放结果十六进制数的每一位。 char a[12] = “0x0”, n = 2, x; cin >> x; while(x){ switch