这是怎么回事啊,代码里面哪里出现了问题

img


#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    int i,j,b[100][100];
    for(i=0;i<a;i++)
    {
        b[i][0]=1;
    }
    for(i=1;i<a;i++)
    {
        for(j=0;j<=i;j++)
        {
            b[i+1][j]=b[i][j]+b[i][j-1];
        }
    }
    for(i=0;i<a;i++)
    {
        for(j=0;j<=i;j++)
        {
            printf("%d ",b[i][j]);
            
        }
        if(i+1!=a)
        printf("\n");
    }
    return 0;
 }

img

每行最后一个数应该单独赋值为1的
修改的地方我在代码中标注了,代码正确:

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    int i,j,b[100][100];
    for(i=0;i<a;i++)
    {
        b[i][0]=1;
        b[i][i]=1;    //增加这一句
    }
    for(i=1;i<a;i++)
    {
        for(j=0;j<=i;j++)
        {
            b[i+1][j]=b[i][j]+b[i][j-1];
        }
    }
    for(i=0;i<a;i++)
    {
        for(j=0;j<=i;j++)
        {
            printf("%d ",b[i][j]);
            
        }
        if(i+1!=a)
        printf("\n");
    }
    return 0;
 }

img