新手求助帖 可能出现了低级错误 希望帮忙查看一下 没有输出类容
#include<stdio.h>#include<math.h>
double fx(double x){
return x*x+2*x; //原函数
}
double fxx(double x){
return 2*x+2; //原函数的求导
}
int nd(double *x,double j,int c){ //x是初值 j是精度 c是次数
double x0,x1;
int i;
x0=*x;
for(i=0;i<c;i++){
if(fxx(x0)==0.0){ //x处导数为0!!!
return 0;
}
x1=x0-fx(x0)/fxx(x0);
if(fabs(fx(x1))<j){
*x=x1;
return 1;
}
else
{x0=x1;}
}
printf("在迭代次数范围内没有到达精度\n");
return 0;
}
int main(){
double x,j;
int c;
printf("输入迭代初值");
scanf("%lf",&x);
printf("输入需要的精度");
scanf("%lf",&j);
printf("迭代次数");
scanf("%d",c);
if(nd(&x,j,c)==1){
printf("近似根为%lf\n",x);
}
else{
printf("迭代失败");
}
}