用C语言写的显示杨辉三角形的程序,源代码在这里,哪里错了?

#include<stdio.h>
int jiecheng(int);
void przhs(int);
int main()
{
int h,j;

printf("Pls Input a number: ");
scanf("%d",&h);

for(j=1;j<=h;j++)
{
Przhs(j);
printf("\n");
}

return 0;
}
int jiecheng(int a)
{
if(a==1)
return 1;
else
{
a=a*jiecheng(a-1);
return a;
}
}
void przhs(int a)
{
int i;
for(i=1;i<=a;i++)
printf("%d ",jiecheng(a)/(jiecheng(i)*jiecheng(a-i)));
}

第1个回答  2014-11-12
把if(a==1)
return 1;
改成
if(a==1||a==0)
return 1;
就可以了
否则printf("%d ",jiecheng(a)/(jiecheng(i)*jiecheng(a-i)));中(a-i)可能为0本回答被网友采纳
第2个回答  推荐于2016-09-24
#include<stdio.h>
int jiecheng(int);
void przhs(int);
int main()
{
int h,j;

printf("Pls Input a number: ");
scanf("%d",&h);
printf("1\n"); //
for(j=1;j<=h;j++)
{
printf("1 ");//
przhs(j);//
printf("1\n"); //
}

return 0;
}
int jiecheng(int a)
{
if(a==1)
return 1;
else
{
a=a*jiecheng(a-1);
return a;
}
}
void przhs(int a)
{
int i;
for(i=1;i<a;i++) //
printf("%d ",jiecheng(a)/(jiecheng(i)*jiecheng(a-i)));
}

追问

如果要在前面加上空格呢?还有为什么这样写就可以?
复制去Google翻译翻译结果

追答

什么意思?

本回答被提问者采纳