#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/*2^x+3x-7*/
int main(void)
{
float a=0.0f;
float b=2.0f;
float x=0.0f;
float y=1.0f;
float y_1=0.0f;
float y_2=0.0f;
for(;b-a>0.1;)/*二分法求近似解*/
x=(a+b)/2.0f;
y=pow(2,x)+3.0f*x-7.0f;
y_1=pow(2,a)+3.0f*a-7.0f;
y_2=pow(2,b)+3.0f*b-7.0f; // pow返回的值不能再給它賦值,估計你是把+寫成=了
if(y*y_1<0.0f)
b=x;
if(y*y_2<0.0f)
a=x;
}
printf("x=%f",x);
system("pause");
return 0;
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/*2^x+3x-7*/
int main(void)
{
float a=0.0f;
float b=2.0f;
float x=0.0f;
float y=1.0f;
float y_1=0.0f;
float y_2=0.0f;
for(;b-a>0.1;)/*二分法求近似解*/
{
x=(a+b)/2.0f;
y=pow(2,x)+3.0f*x-7.0f;
y_1=pow(2,a)+3.0f*a-7.0f;
y_2=pow(2,b)+3.0f*b-7.0f; // pow返回的值不能再給它賦值,估計你是把+寫成=了
if(y*y_1<0.0f)
b=x;
if(y*y_2<0.0f)
a=x;
}
printf("x=%f",x);
system("pause");
return 0;
}