24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 822  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

1036985870

金虫 (小有名气)

[求助] 采用二分法求解方程的根 已有1人参与

各位大神,大家好!本人初学C,正确结果是1.32472,计算方程求不出来正确结果,但是没有发现哪里有问题,请各位指点指点,谢谢!
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
#include<math.h>
       
//采用二分法求解方程分f(x)=x^3-x-1=0在区间[1.0,1.5]的根,精度1.0e-4
void main()
{
        double left=1.0,right=1.5;
        double f1,f2,f,middle;
        while(abs(right-left)>1.0e-4)
        {
                f1=pow(left,3)-left-1;
                f2=pow(right,3)-right-1;
                middle=(left+right)/2;
                f=pow(middle,3)-middle-1;
                //当满足精度要求,打印方程的根并退出
                if(abs(f)<=1.0e-4)
                {
                        printf("find a root in [1.0,1.5],value=%f\n",middle);
                        break;
                }
                else
                {
                        //判断根的区间
                         if(f1*f<0)
                            {
                         right=middle;
                             }
                            else
                            {
                         left=middle;
                            }
                }
          
        }

        system("pause";
}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baghnac

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
1036985870: 金币+10, ★★★★★最佳答案, 明白了,谢谢! 2016-02-22 19:18:55
引用回帖:
3楼: Originally posted by 1036985870 at 2016-02-21 16:56:50
感谢帮忙顶! 提醒的问题是这个语句if(abs(f)<=1.0e-4)
'function' : conversion from 'double' to 'int', possible loss of data
为什么会提示这个呢?我没有进行类型转换啊!...

CODE:
Name: abs Prototype: int abs (int number) 描述: These functions return the absolute value of number.   Most computers use a two's complement integer representation, in which the absolute value of INT_MIN (the smallest   possible int) cannot be represented; thus, abs (INT_MIN) is not defined.   llabs and imaxdiv are new to ISO C99.   See Integers for a description of the intmax_t type.

abs函数的入参是int类型,返回的也是int类型,是不能满足你的要求的

abs(right-left)>1.0e-4 这句,left不应该比right大,所以这个绝对值就不必要了
if(abs(f)<=1.0e-4)这句可以改成
if((f >= -1.0e-4) && (f <= 1.0e-4) )
Beagreathackernotacracker!
4楼2016-02-21 22:39:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

卤蛋你干嘛

新虫 (初入文坛)

2楼2016-02-21 10:33:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1036985870

金虫 (小有名气)

引用回帖:
2楼: Originally posted by 卤蛋你干嘛 at 2016-02-21 10:33:20
不知道

感谢帮忙顶! 提醒的问题是这个语句if(abs(f)<=1.0e-4)
'function' : conversion from 'double' to 'int', possible loss of data
为什么会提示这个呢?我没有进行类型转换啊!
3楼2016-02-21 16:56:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

钱疯2014

新虫 (初入文坛)

5楼2016-02-22 09:19:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 071000生物学调剂 +3 知昭蔓 2026-04-02 3/150 2026-04-02 11:48 by youngjohn
[考研] 261求B区调剂 +5 明仔· 2026-04-01 7/350 2026-04-02 11:17 by 邹尉尉
[考研] 333求调剂 +3 12138。、m?x?b 2026-03-26 4/200 2026-04-02 09:58 by olim
[考研] 各位老师好,我的一志愿为北京科技大学085601材料专硕 +13 Koxui 2026-03-28 13/650 2026-04-02 09:35 by 哒哒哒呱呱呱
[考研] 291求调剂 +20 Y-cap 2026-03-29 25/1250 2026-04-01 23:49 by 欣喜777
[考研] 292求调剂 +17 木虫er12138 2026-04-01 17/850 2026-04-01 21:37 by 七度不信任
[考研] 0703求调剂 +4 zizimo 2026-03-31 4/200 2026-04-01 16:04 by yanflower7133
[考研] 材料专硕306英一数二 +7 z1z2z3879 2026-03-31 7/350 2026-04-01 14:50 by ZXlzxl0425
[考研] 086000生物与医药 初试274求调剂 +5 小叮当来了 2026-03-30 6/300 2026-04-01 14:25 by mxj1203
[考研] 085600,321分求调剂 +13 大馋小子 2026-03-31 13/650 2026-04-01 12:35 by chemdavid
[考研] 材料与化工调剂一志愿大连海事085600,349 +9 吃的不少 2026-03-30 9/450 2026-04-01 11:24 by wangjy2002
[考研] 复试调剂 +7 双马尾痞老板2 2026-03-31 7/350 2026-03-31 19:49 by Dyhoer
[考研] 085404 22408 315分 +5 zhuangyan123 2026-03-31 6/300 2026-03-31 13:48 by limeifeng
[考研] 085600材料与化工调剂 +16 kikiki7 2026-03-30 16/800 2026-03-31 10:03 by 氯化亚硝酰
[考研] 085602化工求调剂(331分) +8 111@127 2026-03-30 8/400 2026-03-30 21:23 by 研究僧导导
[考研] 本科新能源科学与工程,一志愿华理能动285求调剂 +7 AZMK 2026-03-28 11/550 2026-03-28 21:01 by xxxsssccc
[考研] 304求调剂 +6 曼殊2266 2026-03-27 6/300 2026-03-28 14:10 by 唐沐儿
[考研] 331环境科学与工程求调剂 +3 熠然好运气 2026-03-27 3/150 2026-03-28 04:11 by fmesaito
[考研] 08开头275求调剂 +4 拉谁不重要 2026-03-26 4/200 2026-03-27 14:12 by Delta2012
[考研] 一志愿吉大071010,316分求调剂 +3 xgbiknn 2026-03-27 3/150 2026-03-27 10:36 by guoweigw
信息提示
请填处理意见