大神求解,不胜感激
#include<stdio.h>#include<math.h>
float root(float a ,float b ,int m, int n , int t,int p)
{
float fa,fb,fc,c;
c=(a+b)/2;
fc=m*pow(c,3)+n*pow(c,2)+t*c+p;
fa=m*pow(a,3)+n*pow(a,2)+t*a+p;
fb=m*pow(b,3)+n*pow(b,2)+t*b+p;
if (fc==0)
return (c);
else
{
do
{
c=(a+b)/2;
if(fc==0)break;
if(fa*fc<0)
{
b=c;c=(a+b)/2;
fc=m*pow(c,3)+n*pow(c,2)+t*c-p;
fb=m*pow(b,3)+n*pow(b,2)+t*b-p;}
else
if (fb*fc<0)
{
a=c;c=(a+b)/2;
fc=m*pow(c,3)+n*pow(c,2)+t*c-p;
fa=m*pow(a,3)+n*pow(a,2)+t*a-p;}
}
while (b-a>0.1e-6);
return (c);
}
}
main ()
{
int m,n,p,t;
float a,b,d;
printf ("请输入一个一元三次函数:\n");
scanf("三次项系数为%d \n",&m);
scanf("二次项系数为%d \n",&n);
scanf("一次项系数为%d \n",&p);
scanf("常数项项系数为%d \n",&t);
scanf("请输入任意区间a=%d",&a);
scanf("请输入任意区间b=%d",&b);
d=root (a,b,m,n,t,p);
printf("该方程的根为%lf.\n",d);
}
【希望指出错误点,并修改一下,谢谢!】