求教:程序算法可能出错了,输出结果不对
程序代码://杨辉三角
/*杨辉三角的特性:
1.每个数等于它上方两数之和。
2.每行数字左右对称,由1开始逐渐变大。
3.第n行数字有n项。
4.第n行数字之和为2^n-1。
5.第n行的第m个数可表示为c(n-1,m-1)。
*/
#include<stdio.h>
int choses(int a,int b)
{
int c=1;
while(b>0)
{
c*=a--;
b--;
}
while(b>1)
{
c/=b--;
}
return c;
}
int main(void)
{
int a[5][5]={0};
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++)
{
a[i][j]=choses(i-1,j-1);
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}可能算法有问题,请大神帮助!









