با سلام
من یک برنامه به صورت زیر نوشته ام و آن را در نرم افزار visual studio اجرا میکنم مشکل من این است که تمام خروجی ها چاپ نمیشود و مثلاً دویست خروجی آخر فقط چاپ میشود میخواستم ببینم برای نمایش و ذخیره تمام خروجی هایم چه کار کنم
باتشکر
کد:
#include<stdio.h>
#include<math.h>
#include<conio.h>
#define time 400#define space 50
#define nsn 26 /*number of space nods*/
#define ntn 401/*number of time nods*/
#define courant 1
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,n,k,t;
float L,s,z,d,r,c,v,a[nsn][nsn],u[ntn][nsn],b[nsn],q,y[nsn][nsn+1];
d=space/(nsn-1.0);
printf("d=%f",d);
r=time/(ntn-1.0);
printf("\nr=%f",r);
s=1-3*courant;
printf("\ns=%f",s);
z=1+3*courant;
printf("\nz=%f",z);
v=(courant*d)/r;
printf("\nv=%f",v);
i=0;
j=0;
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 if(i==0&&j==nsn-1) a[i][j]=s;
else if(j==0&&i==nsn-1) a[i][j]=z;
else a[i][j]=0;
i=i+1;}
j=j+1;
i=0;
}
n=0;
while(n<ntn-1){
j=0;
if(n==0) while(j<nsn){L=j*d; u[n][j]=p(L);
printf("\n%f\t%f",L,u[n][j]);
j=j+1;}
j=0;
while(j<nsn){
if(j==0) b[j]=u[n][j+1]+4*u[n][j]+u[n][nsn-1];
else if(j==nsn-1.0) b[j]=u[n][j-1]+4*u[n][j]+u[n][nsn-nsn];
else b[j]=u[n][j-1]+4*u[n][j]+u[n][j+1];
printf("\nb[%d]=%f",j+1,b[j]);
j=j+1;}
for(i=0;i<nsn;i++){
for(j=0;j<nsn+1;j++)
if(i<nsn&&j<nsn) y[i][j]=a[i][j];
else y[i][j]=b[i];}
for(j=0;j<nsn-1;j++){
for(i=j;i<nsn;i++)
if(y[i][j]!=0){
c=y[i][j];
for(k=j;k<nsn+1;k++)
y[i][k]=y[i][k]/c;}
for(i=j+1;i<nsn;i++)
{if(y[i][j]!=0){
for(k=j;k<nsn+1;k++){
y[i][k]=y[i][k]-y[j][k];}
}
}
}
u[n+1][nsn-1]=y[nsn-1][nsn]/y[nsn-1][nsn-1];
1
printf("\n%f",u[n+1][nsn-1]);
for(k=nsn-2;k>=0;k=k-1)
{q=0;
for(t=nsn-1;t>k;t=t-1) q=q+y[k][t]*u[n+1][t];
u[n+1][k]=y[k][nsn]-q;
printf("\n%f",u[n+1][k]);}
n=n+1;}
getch();
return 0;
}