标题:入门级问题
只看楼主
yuquan1989
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-10-13
结帖率:0
已结贴  问题点数:20 回复次数:3 
入门级问题
截弦法求函数值:
#include <math.h>
#include <stdio.h>
float f(float x)
{
float y;
y=((x-5.0)*x+16.0)*x-80.0;
return(y);
}
float xpoint(float x1,float x2)
{
float y;
y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
return(y);
}
float root(float x1,float x2)
{
int i;
float x,y,y1;
y1=f(x1);
do
{
x=xpoint(x1,x2);
y=f(x);
if(y*y1>0)
{
y1=y;
x1=x;
}
else
x2=x;
}
while(fabs(y)>=0.0001);
return(x);
}
main()
{
float x1,x2,f1,f2,x;
do
{
printf("input x1,x2:\n");
scanf("%f,%f",&x1,&x2);
f1=f(x1);
f2=f(x2);
}
while(f1*f2>=0);
x=root(x1,x2);
printf("A root of equation is%8.4f",x);
}
大家跑一下看哪里出了问题。谢谢了!
搜索更多相关主题的帖子: include return input while 
2011-10-13 12:17
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:7 
这句while(f1*f2>=0);,后面为什么加分号

不好意思,看错行了,当我没问上面那句

[ 本帖最后由 embed_xuel 于 2011-10-14 07:24 编辑 ]

总有那身价贱的人给作业贴回复完整的代码
2011-10-13 13:37
Ccool
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2011-8-29
得分:7 
while(fabs(y)>=0.0001);
当fabs(y)陷入这个循环后,就跑不出来啦,就没有返回值啦~~,不信,你改个"<"看看~~
2011-10-13 14:33
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:7 
一般这样是用来控制循环等待的,直到某个条件满足才退出。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-10-14 06:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-352288-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029014 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved