[求助]刚写的一个程序不能运行
/*污染物在一维河流中扩散的简单数值仿真C程序*/#include "stdio.h"
#include "math.h"
#define c1 0 /*河流中原污染物浓度*/
#define c2 1000 /*排污口污染物浓度*/
#define c0 500 /*c0=(c1*q1+c2*q2)/(q1+q2)污染物混合后浓度*/
#define q1 5000.0 /*河流原流量*/
#define q2 5000.0 /*排污口流量*/
#define Ex 20.0 /*纵向离散系数*/
#define u 10.0 /*河流平均流速*/
#define dt 0.5 /*时间间隔*/
#define dx 10.0 /*单位河流长度*/
#define L 10000.0 /*均匀河流总长度*/
#define T 1600.0 /*所研究时间的总长*/
int main(int argc, char *argv[])
{
double x,y,z;
x=Ex*dt/(dx*dx)-u*dt/(2*dx);
y=1.00-2*Ex*dt/(dx*dx);
z=Ex*dt/(dx*dx)-u*dt/dx;
if(u*dt/dx>1||Ex*dt/(dx*dx)>0.5)
printf("您的定义有误\n");
FILE *fp1;
if((fp1=fopen("sharelion.dat","w+"))==NULL)
{
printf("不能找到file.--sharelion.dat\n");
exit(0);
}
int i,j;
double a[1001],b[1001];
a[0]=c0;
for(i=1;i<L/dx;i++)
a[i]=c1;
for(j=1;j<T/dt;j++)
{for(i=0;i<L/dx;i++)
if(i==0)
b[i]=a[0];
else b[i]=x*a[i-1]+y*a[i]+z*[i+1];
for(i=0;i<L/dx;i++)
{
a[i]=b[i];
fprintf(fp1,"%lf\t",a[i];
}
fprintf(fp1,"\n");
printf("已运算%ld次,共%ld 次",i*j,L/dx*(T/dt));
}
fclose(fp1);
return 0;
}