求教:程序算法可能出错了,输出结果不对
程序代码:
//杨辉三角 /*杨辉三角的特性: 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; }
可能算法有问题,请大神帮助!