C编程,急!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/09 21:09:38
#include <math.h>

#include<stdio.h>

#define Q 4094
main()

{
FILE *data,*out;
int i,j;
double H[Q],Rs[Q],Rd[Q],x,mf,F,phf[Q],phf1[Q],phf2,mf1,Rmf=0.1,Rw=0.5,err=1;

data=fopen("data.txt","r");
out=fopen("out.txt","w");

fprintf(out,"H phf\n");
for(i=0;i<Q;i++)
{
fscanf(data,"%lf%lf%lf",&H[i],&Rd[i],&Rs[i]);
}

for(i=0;i<Q;i++) /*求割理孔隙度phf*/
{mf=1;
phf[i]=pow((1/Rs[i]-1/Rd[i])/(1/Rmf-1/Rw),1/mf); /*用深浅侧向测井数据求出phf[i]*/
phf1[i]=phf[i]; /*将phf[i]赋给phf1*/
j=1;err=1;
do
{j=j++;
x=pow((1-phf1[i]),1/3); /*用phf1求x:煤样被割理切割成变长为x的立方体*

do{

x=pow((1-phf1),1/3);
F=x/(1-pwd(x,2))+1/(1+2*x);
mf1=-(log10(F))/(log10(phf1));
phf2=pow((1/Rs-1/Rd)/(1/Rmf-1/Rw),1/mf1);
err=fabs(phf1-phf2)/phf1;
phf1=phf2;
}
while(err>=0.05)

把main中改成:
FILE *data,*out;
int i,j;
double H[Q]={0};
double Rs[Q]={0};
double Rd[Q]={0};
double x=0,mf=0,F=0;
double phf[Q]={0};
double phf1[Q]={0};
double phf2=0,mf1=0,Rmf=0.1,Rw=0.5,err=1;

data=fopen("data.txt","r");
if(data==NULL)
{
printf("找不到数据文件:data.txt\n");
return;
}
out=fopen("out.txt","w");

fprintf(out,"H phf\n");
for(i=0;i<Q;i++)
{
fscanf(data,"%lf%lf%lf",&H[i],&Rd[i],&Rs[i]);
}

for(i=0;i<Q;i++) /*求割理孔隙度phf*/
{
mf=1;
phf[i]=pow((1/Rs[i]-1/Rd[i])/(1/R