| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 607 人关注过本帖
标题:请各位大侠帮看看小弟的程序.........这个程序有错吗?除了结构之外....
只看楼主 加入收藏
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
结帖率:100%
收藏
 问题点数:0 回复次数:6 
请各位大侠帮看看小弟的程序.........这个程序有错吗?除了结构之外....
程序代码:
#include<stdio.h>
#include<math.h>
#define f(x) x*x+2*x+1 //在这里定义函数
main()
{
    float a,b,x1,x2,f1,f2,e;
    int i;
    printf("intput a b e:");
    scanf("%f%f%f",&a,&b,&e);//输入区间和精度
    for(i=0;;i++)
    {
        if(fabs(a-b)<=e)
       
        {
            printf("%f\n%d\n",f(0.5*(a+b)),i);
            break;//符合这个条件后就结束循环
        }
        else
        {
            x1=a+0.382*(b-a);
            x2=a+0.618*(b-a);
            f1=f(x1);
            f2=f(x2);
            if(f(x1)<f(x2))
      
            {
                b=x2;
           
            }
            else
            {
                a=x1;
            }
       
            continue;//这个用来再次循环
        }
    }
}
小弟是想用黄金分割法求极值.....不知这样编程有没有不对的地方....希望各位给点意见.....谢谢~~~
调试了没有提示错误.....但是感觉不对.....

[ 本帖最后由 w527705090 于 2011-9-22 22:36 编辑 ]
搜索更多相关主题的帖子: 成都 
2011-09-22 22:33
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:0 
先自己顶起~~~

有心者,千方百计;无心者,千难万难。
2011-09-22 22:34
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:0 
小弟自己找出原因了....
程序代码:
#include<stdio.h>
#include<math.h>
#define f(x) x*x+2*x+1 //在这里定义函数
main()
{
    double a,b,x1,x2,f1,f2,e; //把这些字符类型改成双精度
    int i;
    printf("intput a b e:");
    scanf("%lf%lf%lf",&a,&b,&e);//输入区间和精度 这里同样要改一下
    for(i=0;;i++)
    {
        if(fabs(a-b)<=e)
      
        {
            printf("%f\n%d\n",f((a+b)/2),i);
            break;//符合这个条件后就结束循环
        }
        else
        {
            x1=a+0.382*(b-a);
            x2=a+0.618*(b-a);
            f1=f(x1);
            f2=f(x2);
            if(f(x1)<f(x2))
     
            {
                b=x2;
          
            }
            else
            {
                a=x1;
            }
      
            continue;//这个用来再次循环
        }
    }
}



[ 本帖最后由 w527705090 于 2011-9-22 22:42 编辑 ]

有心者,千方百计;无心者,千难万难。
2011-09-22 22:40
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 3楼 w527705090
宏定义最容易出错的地方你就犯了,上网搜一下宏定义,会有相关介绍,报歉,手机不好描述

总有那身价贱的人给作业贴回复完整的代码
2011-09-22 22:55
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:0 
回复 4楼 embed_xuel
谢谢指导~~~

有心者,千方百计;无心者,千难万难。
2011-09-22 23:16
wang155423
Rank: 6Rank: 6
等 级:侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
收藏
得分:0 
  貌似没有大的错误
2011-09-22 23:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
避免用宏,这已经是当代编程者的共识。

授人以渔,不授人以鱼。
2011-09-23 09:15
快速回复:请各位大侠帮看看小弟的程序.........这个程序有错吗?除了结构之外... ...
数据加载中...
 
   



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

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