好的c语言算法,有没有好的算法

问题如下:

/* 标准文档模板 */

#include “Stdio.h”

#include “Conio.h”

#include “math.h”

float sum(float a[],int n)

/* 求和函数 */

{

float s=0;

int d;

for(d=0;d

{

s=s+a[d];

}

return s;

}

float std(float a[],int n)

/* 方差函数 */

{

float s=0;

int d;

for(d=0;d

{

s=s+pow((a[d]-sum(a,n)/n),2);

}

return sqrt(s/(n-1));

}

float bit,bim,bib;

int main(void)

{

float bbi[10], cls[35]={6897,6964,6982,7082,7066,7112,7068,6906,6856,7022,7098,

7076,7072,6982,7122,7182,7116,7350,7394,7614,7562,7610,7542,

7580,7362,7438,7294,7462,7370,7622,7762,7686,7652,7630,7418};

int n;

for (n=1;n<10;++n)

{

bbi[n]=((sum(cls,(3+n))-sum(cls,n))/3

+(sum(cls,(6+n))-sum(cls,n))/6

+(sum(cls,(12+n))-sum(cls,n))/12

+(sum(cls,(24+n))-sum(cls,n))/24)/4;

}

bbi[0]=(sum(cls,3)/3+sum(cls,6)/6+sum(cls,12)/12+sum(cls,24)/24)/4;

bim=bbi[0];

bit=bim+3*std(bbi,10);

bib=bim-3*std(bbi,10);

printf(“\n\nbit %.2f   bim %.2f  bib %.2f\n\n\n”,bit,bim,bib);

getch();

return 0;

}

已知此程序正确。运行后可以输出bit,bim,bib三个数据,要求是求一种算法,且这种算法算出的数值代替以上程序中的cls[0]运行后,输出的结果bit或bib其中的一个与这个值相同。

我开始用由小到大循环的方法,但不行,我怀疑此种方法的可行性。

后来我用一元二次方程求解法,算了五六天还是不对,也不知是二次方程的系数没算对,也不知是电脑计算过程中数据因溢出或丢失而出错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值