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 }

 时间太久了了,自己都看不懂了啊,有时间再改吧

posted @ 2019-09-22 17:30  daxigua  阅读(138)  评论(0)    收藏  举报