jch029 2020-03-11 21:02 采纳率: 100%
浏览 180
已结题

10几年前的代码,在虚拟机中的win98系统下可以正常编译运行,现在在win10版本的codeblocks中报错,怎么处理?

#include "math.h"
double lbsl1(n,x);
int n();
double x();
{ int i,m;
double t,y,z,p,q,s,b0,b1;
static double a[6]={ 57568490574.0,-13362590354.0,
651619640.7,-11214424.18,77392.33017,
-184.9052456};
static double b[6]={ 57568490411.0,1029532985.0,
9494680.718,59272.64853,267.8532712,1.0};
static double c[6]={ 72362614232.0,-7895059235.0,
242396853.1,-2972611.439,15704.4826,
-30.16036606};
static double d[6]={ 144725228443.0,2300535178.0,
18583304.74,99447.43394,376.9991397,1.0};
static double e[5]={ 1.0,-0.1098628627e-02,
0.2734510407e-04,-0.2073370639e-05,
0.2093887211e-06};
static double f[5]={ -0.1562499995e-01,
0.1430488765e-03,-0.6911147651e-05,
0.7621095161e-06,-0.934935152e-07};
static double g[5]={ 1.0,0.183105e-02,
-0.3516396496e-04,0.2457520174e-05,
-0.240337019e-06};
static double h[5]={ 0.4687499995e-01,
-0.2002690873e-03,0.8449199096e-05,
-0.88228987e-06,0.105787412e-06};
t=fabs(x);
if (n if (n!=1)
{ if (t { y=t*t; p=a[5]; q=b[5];
for (i=4; i>=0; i--)
{ p=p*y+a[i]; q=q*y+b[i];}
p=p/q;
}
else
{ z=8.0/t; y=z*z;
p=e[4]; q=f[4];
for (i=3; i>=0; i--)
{ p=p*y+e[i]; q=q*y+f[i];}
s=t-0.785398164;
p=p*cos(s)-z*q*sin(s);
p=p*sqrt(0.636619772/t);
}
}
if (n==0) return(p);
b0=p;
if (t { y=t*t; p=c[5]; q=d[5];
for (i=4; i>=0; i--)
{ p=p*y+c[i]; q=q*y+d[i];}
p=x*p/q;
}
else
{ z=8.0/t; y=z*z;
p=g[4]; q=h[4];
for (i=3; i>=0; i--)
{ p=p*y+g[i]; q=q*y+h[i];}
s=t-2.356194491;
p=p*cos(s)-z*q*sin(s);
p=p*x*sqrt(0.636619772/t)/t;
}
if (n==1) return(p);
b1=p;
if (x==0.0) return(0.0);
s=2.0/t;
if (t>1.0*n)
{ if (x for (i=1; i { p=s*i*b1-b0; b0=b1; b1=p;}
}
else
{ m=(n+(int)sqrt(40.0*n))/2;
m=2*m;
p=0.0; q=0.0; b0=1.0; b1=0.0;
for (i=m-1; i>=0; i--)
{ t=s*(i+1)*b0-b1;
b1=b0; b0=t;
if (fabs(b0)>1.0e+10)
{ b0=b0*1.0e-10; b1=b1*1.0e-10;
p=p*1.0e-10; q=q*1.0e-10;
}
if ((i+2)%2==0) q=q+b0;
if ((i+1)==n) p=b1;
}
q=2.0*q-b0; p=p/q;
}
if ((x<0.0)&&(n%2==1)) p=-p;
return(p);
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-03-11 23:28
    关注

    if (n if (n!=1)
    { if (t { y=t*t; p=a[5]; q=b[5];
    这种代码当然不能编译了。
    如果你一窍不通,最好还是求助专业人士。

    评论

报告相同问题?

悬赏问题

  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败