请帮忙修改一下!

danfense 2007-12-07 11:59:13
下面是我编的程序,我想把数据写到一个文件里,请各位学长帮忙,加上写入文件的语句,实现这一功能,写入mydata.dat文件吧!多谢!
#include "stdio.h"
#include "math.h"
#define A 0
#define B 0.1
#define C 1
#define D 1
#define E 1
#define W 3

void func(double x[],double z[]) {
z[0]=-10*x[0]+(10*x[1]);
z[1]=28*x[0]-x[1]-x[0]*x[2];
z[2]=(-8/3)*x[2]+x[0]*x[1];
}

void runk(double t,double b[],double h)
{
double j[W],c[W],c1[W],c2[W],k[W],l[W],m[W];
double a;
int i;
func(b,j);
a=t+h/2.0;
for(i=0;i<W;i++)
c[i]=b[i]+h/2.0*j[i];
func(c,k);
for(i=0;i<W;i++)
c1[i]=b[i]+h/2.0*k[i];
func(c1,l);
for(i=0;i<W;i++)
c2[i]=b[i]+h*l[i];
func(c2,m);
for(i=0;i<W;i++)
b[i]=b[i]+h/6*(j[i]+2*k[i]+2*l[i]+m[i]);
}

double compare(double q[])
{
double max;
if(q[0]>q[1])
max=q[0];
else
max=q[1];
if(max<q[2])
max=q[2];
return max;
}


void bianbuc(double t,double b[],double h)
{
double bf[W],b1[W],h1=h,q[W],y0[W],y1[W],max,t1;
int i,j,n=1;
for(i=0;i<3;i++)
bf[i]=b[i];
runk(t,bf,h);
printf("h is :%15.7lf\n",h);
for(j=0;j<W;j++)
{
printf("%15.7lf\t",bf[j]);
}
printf("\n");
for(j=0;;j++)
{
h1=h1/2.0;
printf("h1 is :%15.7lf\n",h1);
n=2*n;
t1=t;
for(i=0;i<W;i++)
b1[i]=b[i];
for(i=0;i<n;i++)
{
runk(t1,b1,h1);
for(j=0;j<W;j++)
{
printf("%15.7lf\t",b1[j]);
}
printf("\n");
t1=t1+h1;
}
for(i=0;i<W;i++)
q[i]=fabs(bf[i]-b1[i]);
max=compare(q);
printf("max=%lf\n",max);
if(max>1.0e-6)
{
for(i=0;i<W;i++)
bf[i]=b1[i];
}
else
{
for(i=0;i<W;i++)
b[i]=b1[i];
break;
}
}
}

main()
{
double t=A,b[W]={C,D,E},bf[W],h=B,h1=B/2.0,q[W],
y0[W],y1[W],max;
int i,n=2,j,l;

for(l=0;l<=n;l++)
{
bianbuc(t,b,h);
t=t+h;
printf("t=%lf\n",t);
}
}
...全文
59 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChamPagneZ 2007-12-07
  • 打赏
  • 举报
回复
只看到了大量的数组以及不明其义的变量.
:(
---------------------
程序看不下去啦,具体的写文件的方法同楼上.
就呆在云上 2007-12-07
  • 打赏
  • 举报
回复
en ?
很简单啊
先fopen
然后fputs或者fwrite
再fclose
chlaws 2007-12-07
  • 打赏
  • 举报
回复

//main add some sentence
main()
{
double t=A,b[W]={C,D,E},bf[W],h=B,h1=B/2.0,q[W],
y0[W],y1[W],max;
int i,n=2,j,l;
FILE *fp;
if((fp=open("mydata.dat","w"))==NULL)
{
printf("can not open file.\n");
return;
}
for(l=0;l <=n;l++)
{
bianbuc(t,b,h);
t=t+h;
printf("t=%lf\n",t);
fputc(t,fp);
}
fclose(fp);
}


Arthur_ 2007-12-07
  • 打赏
  • 举报
回复
把你的程序编译成exe后比如app.exe

在命令行下执行 app > mydata.dat
CUG87525842 2007-12-07
  • 打赏
  • 举报
回复
#include <stdio.h>

int main()
{
FILE *fp;
int i,a[5]={1,2,3,4,5},b[5];

if (NULL==(fp=fopen("wei.txt","wb")))
{
printf("the file can't open\n");
}



fwrite(a,sizeof(int),5,fp);
fclose(fp);

if (NULL==(fp=fopen("wei.txt","rb")))
{
printf("the file can't open\n");
}



fread(b,sizeof(int),5,fp);
fclose(fp);

for (i=0;i<5;i++)
printf("%d ",b[i]);

return 0;
}

这是个例子,你看看应该就会了!

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧