北京市第二轮巡视组:c程序纠错

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 07:05:10
以下程序是我求三次方程a*x*x*x+b*x*x+c*x+d=0的根的程序:
float x;
#include<stdio.h>
#include<stdlib.h>
main()
{
float root(float a ,float b,float c,float d);
float a,b,c,d;
printf("input a,b,c,d:\n");
scanf("%f,%f,%f,%f",&a,&b,&c,&d);
printf("equation is: %2.2f*x*x*x+%2.2f*x*x+%2.2f*x+%2.2f\n",a,b,c,d);
root(a,b,c,d);
printf("%f",x);
}
float root(float a,float b,float c,float d)
{ float f1,f2,x1,x2,f;
x2=-5;
{
srand(time());
x1=random(5);
f1=a*x1*x1*x1+b*x1*x1+c*x1+d;
f2=a*x2*x2*x2+b*x2*x2+c*x2+d;
}
while(f1*f2>0)
{
x=(x1*f2-x2*f1)/(f2-f1);
f=a*x*x*x+b*x*x+c*x+d;
if(f*f1>0)
x1=x;
else
x2=x;
f2=a*x2*x2*x2+b*x2*x2+c*x2+d;
f1=a*x1*x1*x1+b*x1*x1+c*x1+d;
}while(f>1.0e-6)
return(x);
}
可就是不正确,是不是随机函数有问题啊!该怎么改正呢?望各位高手指点.谢谢!!

我不知你的算法,但是随机函数真的有错.
应该是:
srand(time(NULL));
x2 = rand();

我刚学