7-18 二分法求多项式单根
1 #include<stdio.h> 2 #include<string.h> 3 float f(float);//函数引用声明// 4 float a,b,c,d,x,y; 5 int main() 6 { 7 float aver; 8 scanf("%f %f %f %f \n",&a,&b,&c,&d); 9 scanf("%f %f",&x,&y); 10 aver = (x+y)/2; 11 if(f(x) < f(y)){ 12 while(f(aver) != 0&& y-x>=0.0001){ 13 if(f(aver) > 0){ 14 y = aver; 15 aver = (aver + x)/2; 16 }else{ 17 x = aver; 18 aver = (aver + y)/2; 19 } 20 21 } 22 }else{ 23 while(f(aver) != 0 && y-x>=0.0001){ 24 if(f(aver) > 0){ 25 x =aver; 26 aver = (aver + y)/2; 27 28 }else{ 29 y = aver; 30 aver = (aver + x)/2; 31 } 32 } 33 } 34 35 36 printf("%.2lf",aver);//输出函数的根,保留两位小数// 37 return 0; 38 } 39 float f(float x){ //定义函数f(x)// 40 41 return a*x*x*x + b*x*x + c*x + d ; 42 }
时间太久了了,自己都看不懂了啊,有时间再改吧

浙公网安备 33010602011771号