| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 398 人关注过本帖
标题:一个关于求解函数根的问题
只看楼主 加入收藏
nicezhangfan
Rank: 2
等 级:论坛游民
帖 子:23
专家分:10
注 册:2012-9-27
结帖率:40%
收藏
已结贴  问题点数:10 回复次数:2 
一个关于求解函数根的问题
写了一个求解函数根的程序!!用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);
  }
搜索更多相关主题的帖子: 编译器 
2012-10-17 18:12
nicezhangfan
Rank: 2
等 级:论坛游民
帖 子:23
专家分:10
注 册:2012-9-27
收藏
得分:0 
附带编译器的编译信息!!
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(24) : error C2143: syntax error : missing ';' before 'type'
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(25) : error C2065: 'root_x1' : undeclared identifier
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(25) : error C2065: 'root_x2' : undeclared identifier
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(26) : warning C4244: 'function' : conversion from 'int ' to 'float ', possible loss of data
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(26) : warning C4244: 'function' : conversion from 'int ' to 'float ', possible loss of data
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(32) : error C2143: syntax error : missing ';' before 'type'
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(35) : error C2065: 'root_x' : undeclared identifier
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(35) : warning C4244: 'function' : conversion from 'int ' to 'float ', possible loss of data
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(35) : warning C4244: 'function' : conversion from 'int ' to 'float ', possible loss of data
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(35) : warning C4244: '=' : conversion from 'float ' to 'int ', possible loss of data
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(36) : warning C4244: 'function' : conversion from 'int ' to 'float ', possible loss of data
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(36) : warning C4244: 'function' : conversion from 'int ' to 'float ', possible loss of data
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(41) : warning C4244: 'function' : conversion from 'int ' to 'float ', possible loss of data
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(41) : warning C4244: 'function' : conversion from 'int ' to 'float ', possible loss of data
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(45) : warning C4244: 'function' : conversion from 'int ' to 'float ', possible loss of data
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(51) : warning C4244: 'function' : conversion from 'int ' to 'float ', possible loss of data
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(51) : warning C4244: 'function' : conversion from 'float ' to 'int ', possible loss of data
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(52) : warning C4244: 'return' : conversion from 'int ' to 'float ', possible loss of data
G:\ZhangFan\VC 6.0\SmallProgram\Question1.c(65) : warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data
2012-10-17 18:13
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:7 
在vc里面,如果文件的后缀名是.c 那就将 定义的变量写在函数体内的开始位置
     如果是块变量 那就定义在 该块内的 开始位置..........

试试 看..........
2012-10-17 18:26
快速回复:一个关于求解函数根的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017087 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved