| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 505 人关注过本帖
标题:各位看看我哪里错了 二分法求零点
只看楼主 加入收藏
妖冶的盛开
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-11-5
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
各位看看我哪里错了 二分法求零点
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
int main()
{
    float f(float x);
    float a,b,c,jqd;
    float abs(float x);
    printf("请输入区间,精确度\n");
    scanf("[%f,%f],%f",&a,&b,&jqd);
    if(f(a)*f(b)>0) printf("该区间无零点\n");
    else
    {
         if(f(a)*f(b)==0)
         {
                         if(f(a)==0)printf("零点为%f\n",a);
                         else printf("零点为%f\n",b);
                         }
         else
                         {
                              if(abs(a-b)<=jqd)printf("零点是%f\n",a);
                              else
                              {
                                  while(abs(a-b)>jqd)
                                  {
                                                   c=(a+b)*2;
                                                   if(f(c)==0) a=c;
                                                   else
                                                   {
                                                        if(f(a)*f(c)<0) b=c;
                                                        else a=c;
                         }
                              }
                                  }
                                                    }

    }
                                                        printf("零点是%f",a);                                      
                                                        system("pause");
                                                        return 0;
}
                                                        
float f(float x)
{
float y;
y=x*x;
return(y);
}
float abs(float x)
{
return (x>0 ? x : -1*x);
}

      
搜索更多相关主题的帖子: 二分法 
2010-11-19 20:12
妖冶的盛开
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-11-5
收藏
得分:0 
人来啊

依约破初暝
2010-11-19 20:16
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:5 
f(x)=x*x;
显然f(-1)*(1)也是大于0的,但[-1,1]区间有零点.
2010-11-19 20:48
qwerwqily
该用户已被删除
收藏
得分:5 
提示: 作者被禁止或删除 内容自动屏蔽
2010-11-19 22:28
快速回复:各位看看我哪里错了 二分法求零点
数据加载中...
 
   



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

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