C编程的 大家帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/26 03:03:14
#include<math.h>
#include<stdio.h>
#define pi 3.141592654
#define wie 2*pi/(365*24*3600)
#define R 6371000
main()
{
double accelerate(double Lat0);
double Ve,Lat0,t;
double Lat;
double wibb[3],fibb[3];
int i,n;
printf("please input Lat0\n");
scanf("%lf",&Lat0);
Lat=accelerate(Lat0);
getch();
}

double accelerate(double Lat0)
{
int i;
FILE *fp;
double Ve,Lat,t;
double wibb[3],fibb[3];
double t0=2;
fp=fopen("e:\\wibb.txt","w"); /*创建e:\wibb.txt文件*/
for(t=0;t<t0;t+=0.1)
{
Ve=0.5*t;
Lat=0.25*t*t/R+Lat0;
wibb[0]=-1.414/2*wie*cos(Lat)-1.414/2*t/R;
wibb[1]=-1.414/2*wie*cos(Lat);
wibb[2]=wie*sin(Lat)+0.5*t/R*tan(Lat);
for(i=0;i<3;i++)
{
fprintf(fp,"%lf",wibb[i]); /*将wibb[3]写入fp文件,在此fp对应的文件就是e:\a.txt*/
}

#define R 6371000 /*R的值太大啦,改成6371试试看*/

//...

Lat=0.25*t*t/R+Lat0; /* R的值太大了,计算结果就是Lat=Lat0;*/
printf("Lat = %lf\n", Lat);/*可以看到Lat的值没有改变*/

//...

猜测:你讲double换成float试试。

fp是个指针,一直都没动,始终指向开头,所以输出都不变,fp++就好了吧