| 查看: 652 | 回复: 0 | ||
[求助]
积分编程运行结果出现错误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的情况了,结果还是出现那种情况,求高手指点 |
» 猜你喜欢
不要再数国自然申请书的 filecode 的分隔符个数了
已经有6人回复
祈祷青基必中
已经有15人回复
生命口会评
已经有12人回复
大龄残疾硕士的一点执念
已经有26人回复
27届辽宁大学应届毕业生申博
已经有3人回复
关于如何从代码看上不上会
已经有23人回复
chemdraw
已经有6人回复
b口会评
已经有6人回复
信息学部会评时间
已经有3人回复
在职考研
已经有7人回复











;
回复此楼
点击这里搜索更多相关资源