解题思路:
二分法求解近似值
注意事项:
参考代码:
#include<stdio.h>
double cf[30];
int main()
{
int i,j,n;
double s,f,x,l,r,m;
while(scanf("%d",&n)!=EOF)
{
if(n==0) //当输入值为0时退出循环运算
break;
scanf("%lf",&x);
for(i=0;i<n;i++)
scanf("%lf",&cf[i]);
l=-1.0; //设置左区间
r=1e6; //设置右区间
for(i=0;i<100;i++)
{
s=0;
f=1.0;
m=(l+r)/2; //取中间值
for(j=0;j<n;j++)
{
f=f/(1+m);
s=s+cf[j]*f;
}
if(s>(-x))
l=m; //近似值可能落入右区间
else
r=m; //近似值可能落入左区间
}
printf("%.2lf\n",m);
}
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:1516 |
震宇大神的杀毒软件 (C++代码)浏览:1173 |
简单的a+b (C++语言代码)浏览:895 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:690 |
求组合数 (C语言代码)浏览:1206 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:564 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:594 |
C二级辅导-统计字符 (C语言代码)浏览:514 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:653 |
printf基础练习 (C语言代码)浏览:2268 |