| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1923 人关注过本帖, 1 人收藏
标题:[程序纠错]截弦法解一元三次多项式,为什么输入之后按回车会不出结果!
只看楼主 加入收藏
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
结帖率:90.24%
收藏(1)
已结贴  问题点数:15 回复次数:39 
[程序纠错]截弦法解一元三次多项式,为什么输入之后按回车会不出结果!
#include<stdio.h>
#include<math.h>
int main()
{
float root(float x1,float x2);
float xpoint(float x1,float x2);
float f(float x);
float y1,y2,x1,x2;
float x;
scanf("x1=%f,x2=%f",&x1,&x2);
y1=f(x1);
y2=f(x2);
if(y1*y2<0)
{
x=root(x1,x2);
printf("The root is %.2f",x);
}
else
{
printf("Please change the nums please!\n");
return 0;
}
}

float f(float x)
{
float y;
y=x*x*x-5*x*x+16*x-80;
return y;
}

float xpoint(float x1,float x2)
{
float f(float x);
float y1,y2;
float x;
x=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
return x;
}

float root(float x1,float x2)
{
    float f(float x);
    float xpoint(float x1,float x2);
    float y1,y2,y,x;
    y1=f(x1);
    y2=f(x2);
//    if(y1*y2<0)
//    {
    x=xpoint(x1,x2);
    while(abs(f(x)<=1e-6))
    {
    if(f(x)*f(x1)>0)
    x1=x;
    else
    x2=x;
    x=xpoint(x1,x2);
    }
    return x;
//    }
//    else
//    {
//    printf("Please choose num again !");  已将此步骤于main函数内实现O(∩_∩)O~
//    return 0;
//    }

}
搜索更多相关主题的帖子: include change please return 多项式 
2015-03-30 22:06
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
不愿去了解什么是弦截法啊,好像以前帮人解答过,忘了。

能编个毛线衣吗?
2015-03-30 22:19
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:0 
这种重复型的代码 慢慢找就出来了 看看你的输入方法是不是和你scanf里面的格式也一样  这个很重要

授人以鱼,不如授人以渔
2015-03-30 23:23
孤独的守候
Rank: 2
等 级:论坛游民
威 望:1
帖 子:25
专家分:32
注 册:2015-3-25
收藏
得分:0 
若头像为本人,那这题我包了~~

欢迎大家与我一起探讨实时渲染技术~~
2015-03-31 00:53
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
收藏
得分:0 
回复 2楼 wmf2014
弦截法是一种求方程根的基该方法,在计算机编程中常用。他的思路是这样的:任取两个数x1、x2,求得对应的函数值f(x1)、f(x2)。如果两函数值同号,则重新取数,直到这两个函数值异号为止。连接(x1,f(x1))与(x2,f(x2))这两点形成的直线与x轴相交于一点x,求得对应的f(x),判断其与f(x1)、f(x2)中的哪个值同号。如f(x)与f(x1)同号,则f(x)为新的f(x1)。将新的f(x1)与f(x2)连接,如此循环。体现的是极限的思想。

既然还有不甘心
就还没到放弃的时候~
2015-04-01 15:12
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
收藏
得分:0 
回复 4楼 孤独的守候
......

既然还有不甘心
就还没到放弃的时候~
2015-04-01 15:15
S140131022
Rank: 2
来 自:重庆邮电大学
等 级:论坛游民
帖 子:205
专家分:35
注 册:2014-10-9
收藏
得分:0 
回复 3楼 执笔画江山
确实检查不出来~ 感觉和参考答案也没啥区别~ 就是输入不出来

既然还有不甘心
就还没到放弃的时候~
2015-04-01 15:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你怎么知道所取的那两个点必定有解?

授人以渔,不授人以鱼。
2015-04-01 15:20
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 7楼 S140131022
参考答案也是这么写的吗?
scanf("x1=%f,x2=%f",&x1,&x2);

总有那身价贱的人给作业贴回复完整的代码
2015-04-01 15:22
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:0 
回复 7楼 S140131022
能给一组测试数据么?

授人以鱼,不如授人以渔
2015-04-01 15:22
快速回复:[程序纠错]截弦法解一元三次多项式,为什么输入之后按回车会不出结果! ...
数据加载中...
 
   



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

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