如何将C程序输出结果保存在一个文件里?
有这么一个程序我要将它的输出结果保存在E盘的filename.c文件中,下面的程序对吗?#include<stdio.h>
#include<math.h>
main()
{
FILE *fp;
double xa=0.0,xb=2.0,q=6.5,qq=0.0000028,d=0.000000002067,l=0.2,dti=0.0006,nn=61,d0=0.0007;
double s=0.0,h,x=xa,fa,fb,sum=0.0,kk,a0=0.0000012875,af=0.0000003848,aaa=0.000055064,de;
double f1[21],f2[21],ss[20],dh[20],u[20],k[20],qqq[20],z[10],aa[20],suma;
int i,j,n=20;
if((fp=fopen("e:\filename.c","w"))==NULL)
{printf("cannot open file\n");
exit(0);}
for(j=601;j<=700;j++)
{
x=xa;
q=j/100.0;
fa=1.0/(q*sqrt(2*3.1416))*exp(-(xa-1)*(xa-1)/(2*q*q));
fb=1.0/(q*sqrt(2*3.1416))*exp(-(xb-1)*(xb-1)/(2*q*q));
h=(xb-xa)/(2.0*n);
f1[0]=fa;
f2[0]=1.0/(q*sqrt(2*3.1416))*exp(-(x+h-1)*(x+h-1)/(2*q*q));
x=x+h;
s=0.0;
sum=0.0;
for(i=0;i<n;i++)
{
x=x+h;
f1[i+1]=1.0/(q*sqrt(2*3.1416))*exp(-(x-1)*(x-1)/(2*q*q));
x=x+h;
f2[i+1]=1.0/(q*sqrt(2*3.1416))*exp(-(x-1)*(x-1)/(2*q*q));
ss[i]=h/3.0*(f1[i]+f1[i+1]+4*f2[i]);
s=s+ss[i];
aa[i]=(xb-xa)/n*(i+1)*(a0-af)+af;
dh[i]=4*aa[i]/(3.1416*d0);
de=4*aaa/(3.1416*(0.01+nn*d0));
qqq[i]=qq*dh[i]*dh[i]*aa[i]/(aaa*de*de);
u[i]=qqq[i]/aa[i];
z[i]=u[i]*dti*dti/(d*l);
k[i]=1.62*pow(z[i],0.33)*d/dh[i];
sum=sum+ss[i]*qqq[i]*exp(-k[i]*aa[i]/qqq[i]);
}
suma=sum*nn;
ss[20]=h/3.0*(f1[19]+f1[20]+4*f2[19]);
s=s+ss[20];
kk=qq/aaa*log(qq/(sum*nn));
fprintf(fp,"q=%f,kk=%g,s=%g,suma=%g\n",q, kk,s,suma);
fclose(fp);
}
}