回 帖 发 新 帖 刷新版面

主题:[讨论]求教高手


希望实现的过程。
这是公式a=b*系数*c^row+b*系数*c^row+……+b*系数*C^row
row是杨辉三角的行数。也是公式里面的c的平方数。
我的程序里面用inter做的c,
然后我想用do来多做你组a,来做对比,既改变c即可该改变a。
系数就是杨辉三角的每一列的和。第一列就是第一项的系数,第二列是第二项,依此类推。
b是我宏定义的prin.
然后最后要求一个a/b的比值。
举例:
杨辉三角
1
1 1
1 2 1
1 3 3 1
若计算三行,则a=10,000*(1+1+1)*0.001^1+10,000*(1+2)*0.001^2+10,000*1*0.001^3
若计算四行,则a=10,000*(1+1+1+1)*0.001^1+10,000*(1+2+3)*0.001^2+10,000*(1+3)*0.001^3+10,000*1*0.001^4
希望能做一个能计算出每一行a/b的值并输出,然后能改变c值,在循环输出a/b的值,将a/b的值做成一张二维表。
附上我的程序里面有很多问题,编译过,算法问题很多,输出的全是0.求高手帮解决。

最后出来的结果应该是
    0.0010    0.002    0.003……4.999
1   0.0010    0.0020   0.0030    。
2   0.0020    0.0041   0.0062    。
3   0.0031    0.0063   0.0095……
。    。         。       。……
。    。         。       。……
。    。         。       。……

附上我的程序。(里面有算法问题,编译过了)
#include <stdio.h>
#include <stdlib.h>
#define prin 10000
int i,j,q;
float inter=0.001,m;
long double n=1,sum,in,a[100][100];
main()
{
 for(i=0;i<100;i++)
  {for(j=0;j<100;j++)
   {if(i==j) a[i][j]=1;
     if(j==0) a[i][j]=1;
      else a[i][j]=a[i-1][j-1]+a[i-1][j];
}    
}
do{
   for(j=0;j<100;j++)
    {n=n*inter;
      for(i=0;i<100;i++)
       {q=q+a[i][j];}
        in=prin*q*n;
       sum=sum+in;
       m=sum/prin;
       printf("%d",m);
      inter=inter+0.001;
       printf("\n");
}
}
while(inter<=5.000);

system("pause");

}

回复列表 (共2个回复)

沙发

首先你main()开头构造杨辉三角就有问题:
j大于i时会是什么情况? 当i=0,j=1时还会出现a[-1][0]?...
所以你for(j=0;j<100;j++)最好改为for ( j = 0;j <= i;j++ ),
或者先初始下二维数组a,都赋值为0,再看情况处理;
剩下的你把具体问题附上吧,你描述的貌似很乱,有些看不明白你说的什么??

板凳

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846

我来回复

您尚未登录,请登录后再回复。点此登录或注册