24小时热门版块排行榜    

查看: 600  |  回复: 0

qiaoyue

新虫 (初入文坛)

[求助] 积分编程运行结果出现错误y1和y2=-1.#IND00是怎么回事

#include<stdio.h>
#include <math.h>
#define PI 3.14159
double b1,K;
double integral(double(*fun)(double x),double a,double b,int n)
{
        double s,h,z;
    int i;
    s=(fun(a)+fun(b))/2;
        h=(b-a)/n; /*积分步长*/
    for(i=1;i<n;i++)
                s=s+fun(a+i*h);
            z=s*h;
    return z;/*返回积分值*/
}
  double f(double x)
  {
        return((K-b1*(pow(K,2)-pow(x,2))/2)/sqrt(pow(x,2)-pow((K-b1*(pow(K,2)-pow(x,2))/2),2))); /*修改此处可以改变被积函数*/
  }

main()
{        double y,y1,L,K,jd;
    printf("请分别输入L和K的值:\n";
        scanf("%1f %1f",&L,&K);
        b1=4/(2*K+1);
while(fabs(y1)>0.01)
        {
     b1=b1+0.001;
         y=integral(f,0.5,K,10000);/*修改此处可以改变积分上下限和步长*/
         y1=L-2*y;         
         jd=acos(K*(2-b1*K)+b1/4)*180/PI;
        }
        printf("b1=%f\n y=%lf\n y1=%lf\n jd=%lf\n",b1,y,y1,jd);
}
看网上有人说是非法运算溢出什么的,但是我把b1的初值再加上0.001就没有为0的情况了,结果还是出现那种情况,求高手指点
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

找到一些相关的精华帖子,希望有用哦~

科研从小木虫开始,人人为我,我为人人
相关版块跳转 我要订阅楼主 qiaoyue 的主题更新
信息提示
请填处理意见