| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 446 人关注过本帖
标题:大家能不能帮我看一下这个程序 谢谢
只看楼主 加入收藏
jude1990
Rank: 2
等 级:论坛游民
帖 子:29
专家分:12
注 册:2009-7-26
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:7 
大家能不能帮我看一下这个程序 谢谢
#include<stdio.h>
#include<math.h>
void main()
{
  float x,x0,x1,x2,y;
  float fun(float);//函数编写
  
  float fun(float x)
  {
     y=x*(x*(2x-4)+3)-6;
     return(y);
  }
x1=-10,x2=10;
do
{
  x0=(x1+x2)/2;//必要时修改y=fun(x0)
  if(fun(x0)<0)
      x1=x0;
  else
      x2=x0;
}while(fabs(x1-x2)>=1e-5);
printf("the root of this equation is %f",x0);
}
报错搜过原因  还是看不懂
2009-07-26 22:09
jude1990
Rank: 2
等 级:论坛游民
帖 子:29
专家分:12
注 册:2009-7-26
收藏
得分:0 
这是一个用二分法求2x^3-4x^2+3x-6=0  在(-10,10)之间的根   
报错是D:\jude\computer\编程\works\第六章\习题6.13\Cpp1.cpp(9) : error C2601: 'fun' : local function definitions are illegal
D:\jude\computer\编程\works\第六章\习题6.13\Cpp1.cpp(10) : error C2059: syntax error : 'bad suffix on number'
Error executing cl.exe.
2009-07-26 22:13
soler_z
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:28
专家分:130
注 册:2009-7-17
收藏
得分:10 
float fun(float x)
  {
     y=x*(x*(2x-4)+3)-6;
     return(y);
  }

不明白啥意思。。。
2009-07-26 22:33
q191201771
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-7-25
收藏
得分:0 
float y
2009-07-26 22:36
tianweishuiguo
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2008-7-6
收藏
得分:0 
晕啊!第一次见在函数里面定义函数的!
2009-07-26 22:38
prankmoon
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:161
专家分:921
注 册:2009-7-21
收藏
得分:10 
C语言不允许函数嵌套定义,所有的函数在词法层面都是处于最顶层, 难道 C++ 允许?。
下面的代码是我写的 C 语言版本,不知道符合不符合你的意思(代码有些累赘)。
程序代码:
float y;

float fun(float x)
{
    y = x*(x*(2*x - 4) + 3) - 6;
    
    return y;
}

int main(void)
{

    float x0, x1, x2;
    
    x1 = -10;
    x2 = 10;
    
    do
    {
        x0 = (x1 + x2) / 2;
        if (fun(x0) < 0)
        {
            x1 = x0;
        }
        else
        {
            x2 = x0;
        }
    } while (fabs(x1 - x2) >= 1e-5);
    
    printf("the root of this equation is %f\n", x0);
    
    return 0;

}

输出:
the root of this equation is 1.999998

[[it] 本帖最后由 prankmoon 于 2009-7-26 22:59 编辑 [/it]]
2009-07-26 22:45
jude1990
Rank: 2
等 级:论坛游民
帖 子:29
专家分:12
注 册:2009-7-26
收藏
得分:0 
改正过来了 谢谢大家  
初学 一些细节掌握不好……  谢谢大家的指点

#include<stdio.h>
#include<math.h>
void main()
{
  float x0,x1,x2;
 float fun(float x);
  x1=-10,x2=10;
do
{
  x0=(x1+x2)/2;
  if(fun(x0)<0)
      x1=x0;
  else
      x2=x0;
}while(fabs(x1-x2)>=1e-5);
printf("the root of this equation is %f\n",x0);
}
  float fun(float x)
  {
     float y;
     y=x*(x*(2*x-4)+3)-6;
     return(y);
  }
2009-07-26 22:57
jude1990
Rank: 2
等 级:论坛游民
帖 子:29
专家分:12
注 册:2009-7-26
收藏
得分:0 
回复 6楼 prankmoon
谢谢
2009-07-26 23:05
快速回复:大家能不能帮我看一下这个程序 谢谢
数据加载中...
 
   



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

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