c语言小白求问

伊吹雪 2019-04-17 02:55:47
这个程序哪里出问题了呢#include<stdio.h>
void main(void)
{
double x1,x2,f1,f2,x,f,t=0;
printf("请输入区间范围");
scanf("%lf%lf",&x1,&x2);
f1=x1*x1*x1-7*x1-1;
f2=x2*x2*x2-7*x2-1;
do
{
if(f1*f2>0)
printf("此区间没有根,请重新输入");
else
{
x=(x2+x1)/2;
f=x*x*x-7*x-1;
}
if(f*f1>0)
{
x1=x;
f1=f;
}
else
{
x2=x;
f2=f;
}
t=t+1;
}
while(0.000001>x2-x1);
printf("该区间上有根%lf,二分次数为%lf",x,t);
}
...全文
24 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
伊吹雪 2019-04-17
  • 打赏
  • 举报
回复
是想用二分法求零到六上这个函数的根,精确到0.000001 输入零和六以后输出结果不正确...
自信男孩 2019-04-17
  • 打赏
  • 举报
回复
#include<stdio.h>

//void main(void)
int main(void)
{
double x1,x2,f1,f2,x,f,t=0;

printf("请输入区间范围");
scanf("%lf%lf",&x1,&x2);
f1 = x1*x1*x1-7*x1-1;
f2 = x2*x2*x2-7*x2-1;
do
{
if(f1*f2 > 0) {
printf("此区间没有根,请重新输入");
break;
}
else
{
x=(x2+x1)/2;
f=x*x*x-7*x-1;
}
if(f*f1>0)
{
x1=x;
f1=f;
}
else
{
x2=x;
f2=f;
}
t = t+1;
} while(0.000001>x2-x1);
printf("该区间上有根%lf,二分次数为%lf",x,t);
}


供参考!

建议贴出测试用例,以及预想的结果。
主要是通过你的代码看不出算法是什么

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧