永发信息网

求程序 求方程ax³+bx²+cx+d=0的根 要C语言代码

答案:2  悬赏:40  手机版
解决时间 2021-02-19 15:52
求程序 求方程ax³+bx²+cx+d=0的根 要C语言代码
最佳答案
//迭代法求一元三次方程的根,使用函数
#include
#include
double fr_root(double a, double b, double c, double d, double x)
{
double y;
while(fabs(y = a * x * x * x + b * x * x + c * x + d) > 1e-15)
x -= y / (3 * a * x * x + 2 * b * x + c);
return x;
}
int main(void)
{
double a, b, c, d, x;
char w_ch = 'y';
while('y' == w_ch || 'Y' == w_ch)
{
printf("请输入一元三次方程的系数a,b,c,d(以逗号分隔):\n");
while(4 != scanf("%lf,%lf,%lf,%lf", &a, &b, &c, &d) || 0 == a)
while('\n' != (w_ch = getchar()));
while('\n' != (w_ch = getchar()));
printf("请输入x的初始值:\n");
while(1 != scanf("%lf", &x) || fabs(3 * a * x * x + 2 * b * x + c) < 1e-15)
while('\n' != (w_ch = getchar()));
while('\n' != (w_ch = getchar()));
printf("方程%g*x*x*x+%g*x*x+%g*x+%g=0\nx =%8.3f\n", a, b, c, d, fr_root(a, b, c, d, x));
printf("继续吗(Y/N)?");
w_ch = getchar();
getchar();
printf("\n");
}
return 0;
}追问为什么这个程序我放进visual c++立面运行,输入a, b, c, d的数值然后再回车,它没有给出计算结果二是转行了……追答你先要随意猜一个x值追问
这是程序执行以后


这是输入值以后,不管怎么输入都是按“enter”键就换行了……

追答数字间不要有空格,用逗号分隔
要连续输入对4个数才有效
全部回答
可以试一下二分法
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
振兴街/红星街(路口)地址在哪,我要去那里办
某海外华人旅行团来到了中国,他们旅行的第一
钩针是带塑料手柄的好用还是不带手柄的单头钩
收费如何使用电脑机打发票
40减去4/9的5/6是多少?
地板上的烟头痕迹怎么去除?
大吉大利这样的好词
南宁市公安局公路巡警支队七大队地址有知道的
泡面的汤进到眼里怎么办
纵横四海里马寿南为什么装傻
氧气和血红蛋白结合的部位是AA. 肺部毛细血管
麒麟俩个字中麒是什么意思
欢乐颂二百度云资源谁有分享下谢谢了,花钱的
康海商贸有限责任公司地址在什么地方,想过去
220KV变电站的预算问题
推荐资讯
关于劳动关系解除和解聘书的问题
【七嘴八舌木头人什么动物】
虎刺梅插枝后能晒太阳么
晚上可以骑摩托车进成都吗
后面是“read English.”
郭晶晶有新浪微博吗
牛蛙育苗从那里进
三星np270e5k-x05cn能不能绘图
邮政服务质量管制对象包括邮政市场、集邮市场
我买了台越狱二手iPhone手机 老板说 没ID 我
谁有极乱家族资源分享一下
寒暄近义词是什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?