请问一下这道题...
#include <stdio.h>int main ()
{
int a,b,c,d;
double x=1;
printf("请输入四个系数");
while(scanf("%d%d%d%d",&a,&b,&c,&d)==1);{
if(x==1){
x=1-(a*x*x*x+b*x*x+c*x+d)/(3*a*x*x+2*b*x+c);
}
else
x=x-(a*x*x*x+b*x*x+c*x+d)/(3*a*x*x+2*b*x+c);
++x;
printf("输入Ctrl+Z来结束循环");
}
printf("%f",x);
return 0;
}
运行不出来,烦请指教学习。 把scanf里面的==1改成==4
明明是有四个值好吗 while那一行的分号也去掉 BngThea 发表于 2017-11-9 11:45
把scanf里面的==1改成==4
明明是有四个值好吗
scanf=1不是有效的意思吗?
是值得个数吗? ba21 发表于 2017-11-9 11:47
老师说牛顿迭代法好像不是我这样写的。。 scanf里面有几个输入就会返回数字几
你经常看到==1是因为里面只读取一个输入 ba21 发表于 2017-11-9 11:47
是我说的有问题,不能说运行不出来,是需要循环连续输入,最后CtrlZ结束,但是输入一组以后就自动结束了 BngThea 发表于 2017-11-9 11:59
scanf里面有几个输入就会返回数字几
你经常看到==1是因为里面只读取一个输入
哦哦,现在运行没问题了,请问这道题我这么编写是否正确呢? AppleBJTU 发表于 2017-11-9 12:02
哦哦,现在运行没问题了,请问这道题我这么编写是否正确呢?
不知道你具体要干什么,所以代码思路不知道正确与否
语法上最后一个printf里面用%lf BngThea 发表于 2017-11-9 12:14
不知道你具体要干什么,所以代码思路不知道正确与否
语法上最后一个printf里面用%lf
.用牛顿迭代法求方程f(x)=ax^3+bx^2+cx+d=0在1附的实根,系数a,b,c,d的值依次为1,2,3,4由主函数输入,求出根后由主函数输出。
牛顿迭代法迭代公式是:
.
从预先给定的初值(如本例的初值x0=1)出发,反复使用上面这个迭代公式,可以求出方程的根的近似值。
忘了粘题目了。。如果有空的话麻烦您看一下对不对吧 具体实现结果你可以自行测试,但是x是double类型,尽量不要进行自增运算 BngThea 发表于 2017-11-9 14:05
具体实现结果你可以自行测试,但是x是double类型,尽量不要进行自增运算
好的,谢谢
页:
[1]