#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;
}
每行最后一个数应该单独赋值为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;
}