#include<stdio.h>
#include<math.h>
int main ()
{
FILE *fp;
fp=fopen("output","w");
float t,y=0,x=0,e=5,f=1,w=1;
for (t=0;t<10;t=t+0.01)
{
if( y==inf && y== nan)
break;
fprintf(fp,"%lf\t%lf\n",y,x);
y = y + ((e*(1 - x*x)*y) - x + f*cos(w*t))*t;
x = x + y*t;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么输出会给出无限和NAN值?
比较inf或nan通过isnan()和isinf()功能进行比较,而不是这种方式.
%lf是的double,不是float.
而且,为了上帝的缘故,fclose()你的文件!(前X行是一些有意义的数字.)