C 杨辉三角

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//void initEdge(int a[][], int n);//这样会报错  //C语言中 只有第一维可以不指定大小  其它每一维都要指定
void initEdge(int a[][10], int n);//ok
void printArr(int a[10][10], int n);
void initOthers(int a[10][10], int n);

//输出杨辉三角//不要求对齐
//        1
//      1   1
//    1   2   1
//  1   3   3   1
//1   4   6   4   1
//某一行行的第2个数字是上一行 第1 第2个相加
//某一行行的第3个数字是上一行 第2 第3个相加
//最两端的都是1
int main() {
    int line = 10;
    int a[10][10];
    initEdge(a, 10);
    initOthers(a, 10);
    printArr(a, 10);
    return 1;
}

void initEdge(int a[10][10], int n) {
    int i = 0;
    for (; i < n; i++) {
        a[i][0] = 1;
        a[i][i] = 1;
    }

}

void initOthers(int a[][10], int n) {
    int i = 0;
    int j = 0;
    for (i = 2; i < n; i++) { //
        for (j = 1; j < i; j++) { //要计算的数字个数
            a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
        }

    }
}

void printArr(int a[][10], int n) {
    int i = 0;
    int j = 0;
    for (i = 0; i < n; i++) { //
        for (j = 0; j <= i; j++) {
            printf("%2d ",a[i][j]);
        }
        printf("\n");

    }
}
原文地址:https://www.cnblogs.com/cart55free99/p/2974276.html