#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop /
float f(float x)
{
return pow(x,4)+2pow(x,3)+pow(x,2)-5;
}
int main(int argc, char *argv[])
{
double a,b;
double m,n,i,sum,root;
double esp=1e-8;
printf("Please enter the root interval[a,b]:");
scanf("%lf %lf",&a,&b);
i=0;
if(f(a)*f(b)<0)
{
while(b-a>esp)
{
m=(a+b)/2;
sum=f(m);
if (sum==0)
{
i++;
break;
}
else if (f(a)*f(m)<0)
{
m=b;
i++;
}
else
{
m=a;
i++;
}
}
}
else
{
printf("There are no roots in this interval.\n");
}
root=(a+b)/2;
printf("Number of iterations is %d\n",i);
printf("The approximate root of the equation is %lf\n",root);
system("PAUSE");
return 0;
}
C语音程序无法运行?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-sinJack 2021-11-10 13:18关注
#include <stdio.h> #include <stdlib.h> #include <math.h> float f(float x) { return pow(x,4)+2*pow(x,3)+pow(x,2)-5; } int main(int argc, char *argv[]) { double a,b; double m,n,i,sum,root; double esp=1e-8; printf("Please enter the root interval[a,b]:"); scanf("%lf %lf",&a,&b); i=0; if(f(a)*f(b)<0) { while(b-a>esp) { m=(a+b)/2; sum=f(m); if (sum==0) { i++; break; } else if (f(a)*f(m)<0) { m=b; i++; } else { m=a; i++; } } } else { printf("There are no roots in this interval.\n"); } root=(a+b)/2; printf("Number of iterations is %d\n",i); printf("The approximate root of the equation is %lf\n",root); system("PAUSE"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂
- ¥15 wordpress 产品图片 GIF 没法显示
- ¥15 求三国群英传pl国战时间的修改方法
- ¥15 matlab代码代写,需写出详细代码,代价私
- ¥15 ROS系统搭建请教(跨境电商用途)
- ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。