利用牛顿法和二分法求方程的值,C语言编程,大佬们,帮我们看看这段程序哪里错了

#include
#include
#include

double  sum(double n)  

{

return pow(n,2)-n-1;
}
void main()

{
double x2,f,f1,a,b,x1;
int i ;
printf("请分别输入a、b的值:");
scanf("a=%f b=%f",&a,&b);

for(i=1;i<=10;i++)  迭代十次
{
      x2=x1;

      f=pow(x2,1)-x2-1;

      f1=2*x2-1;

      x1=x2-f/f1;

     if( x1<b && x1>a)

      {

         if (sum(x1)*sum(a)<0 && sum(x1)*sum(b)>0)
        {
            a=x1;
        };
        if(sum(x1)*sum(a)>0 && sum(x1)*sum(b)<0)
        {
            b=x1;
        };
       if(sum(x1)*sum(a)>0 && sum(x1)*sum(b)>0)
        {
            printf("该方程在该区间中无解\n");
            break;
        };

      }
       else
       {  
          x1=(a+b)/2 ;
          if (sum(x1)*sum(a)<0 && sum(x1)*sum(b)>0)
          {
              b=x1;
          };
          if(sum(x1)*sum(a)>0 && sum(x1)*sum(b)<0)
          {
              a=x1;
          };
         if(sum(x1)*sum(a)>0 && sum(x1)*sum(b)>0)
          {
              printf("该方程在该区间中无解\n");
              break;

          };

       }
}

printf("计算结果:x1=%f\n",x1);
}
图片说明

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^