注意:二维数组初始化时,若长度是变量时,执行arr[x][x] = {0}不会将所有元素都初始化为0.建议使用malloc函数初始化
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<string.h>
void printYHDelta(int num)
{
int **obj;
int i,j;
obj =(int **)malloc(sizeof(int *) *num);
for(i=0;i<num;i++){
obj[i]=(int *)malloc(sizeof(int) *num);
memset(obj[i],0,sizeof(int) *num);
}
for(i=0;i<num;i++)
{
for(j=0;j<=i;j++)
{
if(i==j||j==0)
{
obj[i][j]=1;
}
else
{
obj[i][j]=obj[i-1][j-1]+obj[i-1][j];
}
}
}
for(i=0;i<num;i++){
for(j=0;j<=i;j++){
printf("%d ",obj[i][j]);
}
printf("\n");
}
}
int main(void){
int num;
int *arr;
printf("请输入要打印的层数:");
scanf("%d",&num);
printYHDelta(num);
}