一个关于求解函数根的问题
											写了一个求解函数根的程序!!用C-free编译运行通过了,但是用vc连编译都通不过!!是VC编译器有什么特别的地方吗?它还说我有语法错误,有语法错误怎么能在C_Free上运行啊!!求帮忙解答啊!! 程序代码:
程序代码:
/*程序功能:求解函数f(x)=x^3-5x^2+16x-80=0的解
  程序流程:(1)输入x1,x2的值,判断f(x1),f(x2)函数值是否异号
           (2)若f(x1),f(x2)异号,则取两点的弦与x轴的交点x,若不异号则要求继续输入直到异号
           (3)判断f(x)与f(x1),f(x2)的异号情况,若f(x1)与f(x)异号则将x作为新的x2,若f(x2)与f(x)异号则将x作为新的x1的值
           (4)判断f(x)的值是否小于某个很小的数字,用来判断这个值是否可以作为我们的根
           (5)若不是很小,则继续重复步骤2,3以得到合适的值作为我们的函数的根
*/
#include <stdio.h>
#include <math.h>
float root();
float f(float x);
float xpoint(float x1,float x2);
  void main()
  {
    float answer=root();//计算根
    printf("这个函数的一个根为:%f\n",answer);
  }
  
  float root()//定义求解函数
  {  
       printf("请输入两个合适的边界值来求解函数的根\n");
       float root_x1,root_x2;//定义两个用来接收用户输入的变量
       scanf("%f%f",&root_x1,&root_x2);
     while(f(root_x1)*f(root_x2)>0)
     {
       printf("输入的值不合适,请输入两个合适的边界值来求解函数的根\n");
       scanf("%f %f",&root_x1,&root_x2);
     }//如果输入值不合理要求用户继续输入直到输入值合理
     
     float root_x;
     do
     {
        root_x=xpoint(root_x1,root_x2);
        if(f(root_x1)*f(root_x)<0)
        {
           root_x2=root_x;
        }
     
        if(f(root_x2)*f(root_x)<0)
        {
           root_x1=root_x;
        }
        if(f(root_x)==0)
        {
            break;
        }
        
     }
     while(abs(f(root_x))>pow(10,-6));//循环求解
     return(root_x);
  }
  
  float xpoint(float xpoint_x1,float xpoint_x2)//定义求交点的函数
  {
     float xpoint_answer;
     xpoint_answer=(xpoint_x1*f(xpoint_x2)-xpoint_x2*f(xpoint_x1))/(f(xpoint_x2)-f(xpoint_x1));
     return(xpoint_answer);
  }
  
  float f(float f_x)//定义求函数值的函数
  {
    float f_answer;
    f_answer=pow(f_x,3)-5*pow(f_x,2)+16*f_x-80;
    return(f_answer);
  }										
					
	


 
											





 
	    

 
	

