'a' :undeclared identifier怎么解决

#include <iostream>
#include <cstdlib>
#include <cmath>
#define N 19
void tdma(float a[],float b[],float c[],float f[],float x[]);
void main(void)
{

//double Pe,B,R,xp=0.05;
float Pe,B,R;
float xp=0.05f;
printf("输入Peclet数:\n");
scanf("%f",&Pe);
printf("输入贝塔值:\n");
scanf("%f",&B);
printf("输入扩散系数伽玛:\n");
scanf("%f",&R);

int i=0;
//float [];
static float a[N],b[N],c[N],f[N],x[N];
if(Pe<10)
{
a[0]=0;
c[0]=20*R*pow((1-0.1*fabs(Pe)),5);
b[0]=a[0]+c[0];
f[0]=B*(1-2*xp)/40;
for(i=1;i<N-1;i++)
{
xp=xp+0.05;
c[i]=20*R*pow((1-0.1*fabs(Pe)),5);
a[i]=20*R*pow((1-0.1*fabs(Pe)),5)+Pe*R;
b[i]=a[i]+c[i];
f[i]=B*(1-2*xp)/40;
}
xp=0.95f;
c[18]=0;
a[18]=20*R*pow((1-0.1*fabs(Pe)),5)+Pe*R;
b[18]=a[18]+c[18];
f[18]=B*(1-2*xp)/40+20*R*pow((1-0.1*fabs(Pe)),5);
}
else
{
a[0]=0;
c[0]=0;
b[0]=a[0]+c[0];
f[0]=B*(1-2*xp)/40;
for(i=1;i<N-1;i++)
{
xp=xp+0.05;
c[i]=0;
a[i]=Pe*R;
b[i]=a[i]+c[i];
f[i]=B*(1-2*xp)/40;
}
xp=0.95f;
c[18]=0;
a[18]=Pe*R;
b[18]=a[18]+c[18];
f[18]=B*(1-2*xp)/40;
}
}
tdma(a,b,c,f,x);
for(i=0;i<N;i++)
// printf("x[%d]=%f\n",i,x[i]);
printf("x[%d]=%f\n",i,x[i]);
}
void tdma(float a[],float b[],float c[],float f[],float x[])
{
int i;
float P[N],Q[N];
P[0]=c[0]/b[0];
Q[0]=f[0]/b[0];
for(i=1;i<N;i++)
{
P[i]=c[i]/(b[i]-P[i-1]*a[i]);
Q[i]=(f[i]+a[i]*Q[i-1])/(b[i]-P[i-1]*a[i]);
}
x[N-1]=Q[N-1];
for(i=N-2;i>=0;i--)
x[i]=P[i]*x[i+1]+Q[i];
return;
}

第1个回答  2013-07-03
}
tdma(a,b,c,f,x);
前面多了个}本回答被提问者采纳
相似回答