PDA

نسخه کامل مشاهده نسخه کامل : اشکال در پروسس برنامه و جواب گرفتن



mhdmkl
29-10-2011, 08:54
باسلام خدمت دوستان
من یک برنامه cبه صورت زیر نوشته ام ولی در حین اجرای آن با کامپایلر turboدچار مشکل می شوم لطفاً راهنمایی کنید

#include<stdio.h>
#include<math.h>
#define time 20.0
#define space 50.0
#define nsn 6
#define ntn 6
#define velocity 3.0
float p(float x)
{float f;
int w;
if(x>=8&&x<=28) w=-1;
else if(x>=28&&x<=38) w=1;
else w=0;
f=2+(w*(1+(0.3*(sin((3.14*x)/5))))*(1+(0.4*sin((4*3.14)/25))));
return(f);
}
main(){
int i,j,k;
float s,z,d,r,c,a[nsn][nsn],u[ntn][nsn],b[nsn],q,y;
k=1;
i=1;
j=1;
d=space/(nsn-1.0);
printf("d=%f",d);
r=time/(ntn-1.0);
printf("\nr=%f",r);
c=(velocity*r)/d;
printf("\nc=%f",c);
s=1-3*c;
printf("\ns=%f",s);
z=1+3*c;
printf("\nz=%f",z);
while(k<=ntn-1){
while(j<=nsn)
{while(i<=nsn)
{if(i==j+1) a[i][j]=s;
else if(i==j) a[i][j]=4;
else if(j==i+1) a[i][j]=z;
else a[i][j]=0;
printf("\na[%d][%d]=%f",i,j,a[i][j]);
i=i+1;}
j=j+1;
i=1;
}
j=1;
while(j<=nsn)
{if(k==1) u[k][j]=p(j*d);
else if(j==0) b[j]=4*u[k][j]+u[k][j+1];
else if(j==nsn) b[j]=u[k][j-1];
else b[j]=u[k][j-1]+4*u[k][j]+u[k][j+1];
j=j+1;}
i=nsn;
while(i>=2){
q=a[i][i]-((a[i][i-1]/a[i-1][i-1])*a[i-1][i]);
y=b[i]-((b[i]/a[i-1][i])*b[i-1]);
if(i==nsn) u[k+1][nsn]=(y/q);
else u[k+1][i]=(y-((a[i][i+1]*u[k+1][i+1])/q));
printf("\nu[%d][%d]=%f",k+1,i,u[k+1][i]);
i=i-1;
}
k=k+1;}
j=5;
return 0;
}

همه سمی کالم ها ،پرانتزها و آکلاد ها در انتهای جمله ست تو اینجا افتاده سمت چپ
باتشکر

عــــلی
31-10-2011, 14:11
سلام.
برنامه تست شده و مشکلی نداره.
میتونید با با کامپایلر زیر امتحان کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
لطفاً کدهاتونو در تگ CODE قرار بدید تا مشکل راست به چپ نداشته باشد.
موفق باشید:11:.