编程输出杨辉三角形(其中,最左边一列和对角线上的元素全部为1,其他元素等于左上角元素和正上方元素的和,例如:10行的杨辉三角形如下图)
(1)输出10行杨辉三角形
- #include
- #define M 10
- int main(){
- void fun1(int a[M][M]);
- void fun2(int a[M][M]);
- int arr[M][M];
- fun1(arr); //给数组赋值
- fun2(arr); //输出数组
- return 0;
- }
- void fun1(int a[M][M]) {
- for (int i = 0; i < M; i++) {
- for (int j = 0; j <= i; j++) {
- if (j == 0) {
- a[i][j] = 1;
- }
- else if (i == j) {
- a[i][j] = 1;
- }
- else {
- a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
- }
- }
- }
- }
- void fun2(int b[M][M]) {
- for (int i = 0; i < M; i++) {
- for (int j = 0; j <= i; j++) {
- printf(" %d\t", b[i][j]);
- }
- printf("\n");
- }
- }
(2)对前面的杨辉三角形,计算其中有多少个数的值是大于M行杨辉三角形中所有数值的平均值
- int fun3(int c[M][M]) {
- int sum = 0; //和
- int avg = 0; //平均值
- int count1=0; //大于平均值的数的个数
- for (int i = 0; i < M; i++) {
- for (int j = 0; j <= i; j++) {
- sum += c[i][j];
- }
- }
- avg = sum / (M * (M + 1) / 2);
- printf("10行杨辉三角形中的所有数的平均值为:%d\n", avg);
- for (int i = 0; i < M; i++) {
- for (int j = 0; j <= i; j++) {
- if (c[i][j] > avg) {
- count1 += 1;
- }
- }
- }
- return count1;
- }
完整代码:
- #include
- #define M 10
- int main(){
- void fun1(int a[M][M]);
- void fun2(int a[M][M]);
- int fun3(int a[M][M]);
- int arr[M][M];
- fun1(arr); //给数组赋值
- fun2(arr); //输出数组
- int count=fun3(arr); //计算有多少个数大于平均值
- printf("共有%d个数的值大于10行杨辉三角形中的所有数的平均值\n", count);
- return 0;
- }
- void fun1(int a[M][M]) {
- for (int i = 0; i < M; i++) {
- for (int j = 0; j <= i; j++) {
- if (j == 0) {
- a[i][j] = 1;
- }
- else if (i == j) {
- a[i][j] = 1;
- }
- else {
- a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
- }
- }
- }
- }
- void fun2(int b[M][M]) {
- for (int i = 0; i < M; i++) {
- for (int j = 0; j <= i; j++) {
- printf(" %d\t", b[i][j]);
- }
- printf("\n");
- }
- }
- int fun3(int c[M][M]) {
- int sum = 0; //和
- int avg = 0; //平均值
- int count1=0; //大于平均值的数的个数
- for (int i = 0; i < M; i++) {
- for (int j = 0; j <= i; j++) {
- sum += c[i][j];
- }
- }
- avg = sum / (M * (M + 1) / 2);
- printf("10行杨辉三角形中的所有数的平均值为:%d\n", avg);
- for (int i = 0; i < M; i++) {
- for (int j = 0; j <= i; j++) {
- if (c[i][j] > avg) {
- count1 += 1;
- }
- }
- }
- return count1;
- }
运行结果: