用c++编写形成杨辉三角的函数,编写主函数调用它,得用数组

来源:百度知道 编辑:UC知道 时间:2024/06/24 08:26:47
#include<stdio.h>
int yh(int a,int b,int c)
{
int d[50][50];

for(a=0;a<c;a++)
{d[a][0]=1;
d[a][a]=1;}
for(a=2;a<c;a++)
for(b=1;b<a;b++)
d[a][b]=d[a-1][b-1]+d[a-1][b];
return (d[a-1][b]);
}

void main()
{
int i,j,n;
int s[50][50];
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<=i;j++)
printf("%5d",yh(i,j,n));
}
}
帮忙看下哪错了

*问题分析与算法设计
杨辉三角形中的数,正是(x+y)的N次方幂展开式各项的系数。本题作为程序设计中具有代表性的题目,求解的方法很多,这里仅给出一种。
从杨辉三角形的特点出发,可以总结出:
1)第N行有N+1个值(设起始行为第0行)
2)对于第N行的第J个值:(N>=2)
当J=1或J=N+1时:其值为1
J!=1且J!=N+1时:其值为第N-1行的第J-1个值与第N-1行第J个值之和
将这些特点提炼成数学公式可表示为:
1 x=1或x=N+1
c(x,y)=
c(x-1,y-1)+c(x-1,y) 其它

本程序应是根据以上递归的数学表达式编制的。
*程序说明与注释
#include<stdio.h>
void main()
{
int i,j,n=13;
printf("N=");
while(n>12)
scanf("%d",&n); /*控制输入正确的值以保证屏幕显示的图形正确*/
for(i=0;i<=n;i++) /*控制输出N行*/
{
for(j-0;j<24-2*i;j++) printf(" "); /*控制输出第i行前面的空格*/
for(j=1;j<i+2;j++) printf("%4d",c(i,j)); /*输出第i行的第j个值*/
printf("\\n");
}
}

void int c(int x,int y) /*