注册 登录
编程论坛 C语言论坛

新手求助帖 可能出现了低级错误 希望帮忙查看一下 没有输出类容

廖xx 发布于 2019-12-09 18:15, 1107 次点击
#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("迭代失败");
    }
}
只有本站会员才能查看附件,请 登录


2 回复
#2
廖xx2019-12-09 18:17
回复 楼主 廖xx
牛顿迭代
#3
rjsp2019-12-09 18:39
scanf("%d",c);
编译时有警告
1