C语言关于杨辉三角的一个问题

#include <stdio.h>
void main()
{
    int i,j;
    int num[10][10];
    num[0][0]=1;
    num[1][0]=1;
    num[1][1]=1;
    for(i=0;i<10;i++)
    {
     for(j=0;j<i;j++)
    {
    if(i==0||i==1)
    {
    printf("%d ",num[i][j]);
    }
    else if(j==0&&j==i)
    {
        num[i][j]=1;
    }
    else if((i!=0&&i!=1)&&(j!=0&&j!=i))
    {
     if(j==1)
    {
        num[i][j]=num[i-1][0]+num[i-1][1];
    }
    else if(j==i-1&&j!=0)
    {
    num[i][j]=num[i-1][i-1]+num[i-1][i-2];
    }
    else
    {
    num[i][j]=num[i-1][j-1]*num[i-1][j];
    }
    printf("%d ",num[i][j]);
    }
    }
    printf("\n");
    }
    getchar();
}

运行出来就是这样

img

想问一下这里是赋值有问题吗

getchar();?为什么还要输入字符
int num[10][10]={0};先试一下
23-26行好像没必要
你的代码逻辑有点乱
第一行输出个1,第二行输出个1,就是num[i][0]=1
其他的都是num [ i ][ j ] =num [ i - 1 ] [ j - 1 ] + num [ i - 1 ] [ j ];
因为赋了初值为0,后面的1也是可以这样输出的

img