求助各位师兄师姐,帮我看看这个程序的问题?
我编的这个程序想把s,a的值写入到文件里,可怎么运行不出来呢?哪位师兄师姐帮忙改一下呀?先谢了!
#include "stdio.h "
#include "math.h "
main()
{
double s,a=1.0,i=1;
int n=80;
FILE *cfptr;
if((cfptr=fopen( "madata.dat ", "w "))==NULL)
printf( "file couldnot be open\n ");
else
{
for(i=1;i <=n;i++)
{
s=sqrt(1+0.75*0.04*a*a-0.02+sqrt((1/a)*(1/a)-0.04*(1+0.75*0.04*a*a-0.01)));
printf( "%lf\t%lf\t\n ",a,s);
a=a+0.1;
while(!feof(stdin))
{
fprintf(cfptr, "%lf%lf\n ",a,s);
}
fclose(cfptr);
}
}
return 0;
}
[解决办法]
#include "stdio.h "
#include "math.h "
main()
{
double s,a=1.0,i=1;
int n=80;
FILE *cfptr;
if((cfptr=fopen( "madata.dat ", "w "))==NULL)
printf( "file couldnot be open\n ");
else
{
for(i=1;i <=n;i++)
{
s=sqrt(1+0.75*0.04*a*a-0.02+sqrt((1/a)*(1/a)-0.04*(1+0.75*0.04*a*a-0.01)));
printf( "%lf\t%lf\t\n ",a,s);
a=a+0.1;
fprintf(cfptr, "%lf\t%lf\n ",a,s); //写数据不用feof判断是否到低了
}
}
fclose(cfptr);
return 0;
}