例8。6
#include<stdio.h>
#include<math.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)
{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);
}
void 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\n",x);
}
这个我输入了2,6 为什么显示OVERFLOW?? 帮帮小妹妹吧。。。。没人教我自己学
[此贴子已经被作者于2006-8-6 21:53:29编辑过]
----------------解决方案--------------------------------------------------------
啊。。。贴错图了。。。。
----------------解决方案--------------------------------------------------------
我是女的。。。。大家不要因为这图怀疑我哦。。。。
----------------解决方案--------------------------------------------------------
问个小问题 好吗? 潭书上面的问题
例8。6
#include<stdio.h>
#include<math.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)
{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);
}
void 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\n",x);
}
这个我输入了2,6 为什么显示OVERFLOW?? 帮帮小妹妹吧。。。。没人教我自己学
----------------解决方案--------------------------------------------------------
额~~~~~~~~~~~~~~~~~~我好丢人。。。。。。谢谢楼上的了。。。
----------------解决方案--------------------------------------------------------
这些都是细节问题,其实可以看出来的.
1.初学不会编程,建议抄书,但不要老是依赖书,如果连抄书都会错,那么说明你的思想不集中.
2.scanf();输入数,用逗号隔开可能会好一点(纯属个人意见).
3.你的程序看起来很难受,所以连你也没有耐心看完整个程序到底哪里错了.至少多几个空格隔开也好.
4.多上机实现,错误要试着自己去改正,只有自己经历了,记忆会更深刻.
5.初学觉得很难,希望你会坚持.贵在坚持,请加油!
----------------解决方案--------------------------------------------------------
这些都是细节问题,其实可以看出来的.
1.初学不会编程,建议抄书,但不要老是依赖书,如果连抄书都会错,那么说明你的思想不集中.
2.scanf();输入数,用逗号隔开可能会好一点(纯属个人意见).
3.你的程序看起来很难受,所以连你也没有耐心看完整个程序到底哪里错了.至少多几个空格隔开也好.
4.多上机实现,错误要试着自己去改正,只有自己经历了,记忆会更深刻.
5.初学觉得很难,希望你会坚持.贵在坚持,请加油!
明白了!我一定坚持!谢谢你咯
----------------解决方案--------------------------------------------------------
5.初学觉得很难,希望你会坚持.贵在坚持,请加油!
谢谢,受教.
----------------解决方案--------------------------------------------------------
我也学到了,谢谢了。
----------------解决方案--------------------------------------------------------