大家好,小妹刚学程式,遇到问题还不擅长debug,上来问问资深的大大们如何解决
题目:
https://i.imgur.com/OsHMJR4.jpg
以下是我的程式码:
int findmin(int a,int b)
{
float x1=(3*a+b)/4;
float x2=(a+3*b)/4;
float x0=(a+b)/2;
float f1=x1*x1-2*x1+5;
float f2=x2*x2-2*x2+5;
float f0=x0*x0-2*x0+5;
float e;
printf("input e : ");
scanf("%f",&e);
if(b-a<e)
return (a+b)/2;
else if(f1<f2&&f1<f0)
return findmin(a,x0);
else if(f2<f1&&f2<f0)
return findmin(x0,b);
else if(f0<f1&&f0<f2)
return findmin(x1,x2);
}
int main(void)
{
int a,b;
findmin(-5,5);
printf("ans : %f",findmin(a,b));
return 0;
}
在执行程式时 无论收敛值输入多少,答案都是0,一直找不到问题出在哪里QQ,在这里先
谢谢大家回答