首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

每个数输出到txt,为什么小弟我如何改都不对啊

2012-07-02 
每个数输出到txt,为什么我怎么改都不对啊~~#includeiostream#includefstream#include math.h#includ

每个数输出到txt,为什么我怎么改都不对啊~~
#include<iostream>
#include<fstream>
#include <math.h>
#include <stdio.h>
#define N 12
#define E 0.000001
double f[N];

void fib()
{


 
  int i;
f[0]=1;
f[1]=1;
for(i=0;i<N-2;i++)
{
  f[i+2]=f[i+1]+f[i];
}
}
double result(double d)
{

  return(cos(0.246899*d)-sin((1-0.246899)*d)-0.2*cos(1.659119*d)-0.2*sin((3-1.659119)*d) + 3);
}

void main()
{  
FILE *fp;


int i;
int flag1=0;
int flag2=0;
double a,b,t1,t2,r1,r2;
a=0;
b=5;
  fib();
t1=b+(f[N-2]/f[N-1])*(a-b);
  t2=a+(f[N-2]/f[N-1])*(b-a);
 
  for(i=N-1;i>=2;i--)
{;
 
if(i==2)
{
t1=0.05*(a+b);
t2=a+(0.05+E)*(b-a);
r1=result(t1);
r2=result(t2);
break;
}
  if(flag1!=0)
{
t1=b+(f[i-1]/f[i])*(a-b);
}
FILE *fp = fopen("1.txt", "a");
printf("%.6f,%.6f,%.6f\n ",t1,b,a);

{
t2=a+(f[i-1]/f[i])*(b-a);

FILE *fp = fopen("1.txt", "a");
printf("%.6f,%.6f,%.6f\n",t2,a,b);

r1=result(t1);
r2=result(t2);



if((r1-r2)<E)
{
b=t2;
t2=t1;
flag1=1;
flag2=0;
}
else
{
a=t1;
t1=t2;
  flag1=0;
  flag2=1;
}
}
if(r1-r2<E)
{
printf("The mix is %.6f\n",r1);
}
else
{
printf("The mix is %.6f\n",r2);
}
printf("Press any key to quit!");
getchar();
fclose(fp);
}

[解决办法]
你的程序中都是用printf,这个函数是输出到标准I/O设备的,不是写到文件中的。
要写到文件中,应该用fprintf
要从文件中读,应该用fscanf

热点排行