| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3858 人关注过本帖
标题:大家帮忙看看我的程序啊!急!
取消只看楼主 加入收藏
liaobiao0903
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-7-26
收藏
 问题点数:0 回复次数:16 
大家帮忙看看我的程序啊!急!
对C语言不精通,我编了个程序希望,大家帮忙看看啊,看我的程序错在哪里啊,谢谢!

#include "math.h"
  double fftsf(x)             (定义积分函数)
  double x;
  { double y;
    y=f11(x);
    return(y);
  }

   double fftsf(x)
  { double y;
    y=f(12);
    return(y);
  }

double f11(double x,double e,double fc,double z)      ( 定义被积分函数)
  {
 if((e<=0.002)&&(e>=0))
  f11=fc*((2*(e-z*x))/0.002-((e-z*x)/0.002)*((e-z*x)/0.002));
     else if((e<=0.0033)&&(e>=0.002))
    f11=fc*(1-0.15*((e-z*x)-0.002)/0.0013);
         return (f11);
          else
        printf("error\n");
       }

      double f12(double x,double z,double fc,double e)
      {
      f12=fc*((2*(e-z*x))/0.002-((e-z*x)/0.002)*((e-z*x)/0.002))
      return (f12);
      }

  #include "stdio.h"
    #include "9ffts.c"
    main()
    {
      double a,eps,e,k,fc,ft,fy1,fy2,es1,es2,h,as1,as2,as,ey1,ey2;
      double z,xx1,xx2,gh1,gh2,t11;b;
      double a12,b12,t12,h0;      
      k=0.50;
      fc=16.7;
      ft=1.78;
      fy1=354.00;
      fy2=354.00;
      es1=210000.00;
      es2=210000.00;
      h=350.00;
      as1=0.0;
      as2=461.0;
      as=35.0;
      h0=h-as;
      ey1=fy1/es1;
      ey2=fy2/es2;
      while(e<=0.0033)
      z=e/(k*h0);
      xx1=300.00;
      xx2=-300.00;
      gh1=0.002/z;
      gh2=0.0001/z;
    a=0.0; b=k*h0-gh1; eps=0.000001;     (积分上限,下限,积分精度)
      t11=ffts(a,b,eps,f11);
    a=k*h0-gh1; b=k*h0; eps=0.000001;
      t12=ffts(a,b,eps,f12);
  yn=t11+t12;                             (积分求和)     
while ((xx2<=yn)&&(yn<=xx1))
       z=e/(k*h0);
       scanf("%f,%f,%f",&e,&k,&z);
        if(yn<xx2)
         do {k=k+0.0001;}
         while (xx2<=yn);
        if(yn>xx1)
          do {k=k-0.0001;}
         while (yn<=xx1);
            printf("%f\n","%f\n",&z,&yn);  ( 输出结果)                  
          return 0;
     }

[[it] 本帖最后由 liaobiao0903 于 2008-7-29 10:36 编辑 [/it]]
搜索更多相关主题的帖子: C程序 
2008-07-28 21:15
liaobiao0903
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-7-26
收藏
得分:0 
楼上的怎么这样打击人呢?我是学过C语言,计算机二级也过了,但是就没编过大的程序,函数多了就有些晕,如果楼主是高手的话就应该指出我的程序问题出在哪,而不是在打击人。如果你提出了问题,本人将不甚感激!
2008-07-29 08:57
liaobiao0903
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-7-26
收藏
得分:0 
请各位大侠看看啊!
2008-07-29 10:36
liaobiao0903
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-7-26
收藏
得分:0 
你的TC环境是不有问题啊?
2008-07-29 13:00
liaobiao0903
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-7-26
收藏
得分:0 
好,我改进了一下,楼主再看看
double f11(double x,double e,double z)
  {
 if((e<=0.002)&&(e>=0.0))
  f11=16.7*((2.0*(e-z*x))/0.002-((e-z*x)/0.002)*((e-z*x)/0.002));
     else if((e<=0.0033)&&(e>=0.002))
    f11=16.7*(1.0-0.15*((e-z*x)-0.002)/0.0013);
       }


      double f12(double x,double z,double e)
      {
      f12=16.7*((2.0*(e-z*x))/0.002-((e-z*x)/0.002)*((e-z*x)/0.002));

      }

#include "math.h"
  double fftsf(x)
  double x;
  { double y;
    y=f11(x);
    return(y);
  }

   double fftsf(x)
  { double y;
    y=f(12);
    return(y);
  }
  #include "stdio.h"
    #include "9ffts.c"
    main()
    {
      double a,eps,e,k,fy1,fy2,es1,es2,h,ey1,ey2;
      double z,xx1,xx2,gh1,gh2,t11,b;
      double a12,b12,t12,h0,yn;
      k=0.50;
      h0=315.0;
      while(e<=0.0033)
      z=e/(k*h0);
      xx1=300.00;
      xx2=-300.00;
      gh1=0.002/z;
      a=0.0; b=k*h0-gh1; eps=0.000001;
      t11=ffts(a,b,eps,f11);
    a=k*h0-gh1; b=k*h0; eps=0.000001;
      t12=ffts(a,b,eps,f12);
  yn=t11+t12;
while ((xx2<=yn)&&(yn<=xx1))
       z=e/(k*h0);
       scanf("%f,%f,%f",&e,&k,&z);
        if(yn<xx2)
         do {k=k+0.0001;}
         while (xx2<=yn);
        if(yn>xx1)
          do {k=k-0.0001;}
         while (yn<=xx1);
        printf("%f\n","%f\n",&z,&yn);
      return 0;
     }
主要是里面的错误怎么个改法
2008-07-29 13:04
liaobiao0903
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-7-26
收藏
得分:0 
经过改正后只有一处警告和错误了  //#include "9ffts.c"是求函数积分里面的一个函数
double f11(double x,double e,double z)
  { if((e<=0.002)&&(e>=0.0))
  return 16.7*((2.0*(e-z*x))/0.002-((e-z*x)/0.002)*((e-z*x)/0.002));
     else if((e<=0.0033)&&(e>=0.002))
    return 16.7*(1.0-0.15*((e-z*x)-0.002)/0.0013);
       }(警告:函数要返回一个值)
      double f12(double x,double z,double e)
      {
      return 16.7*((2.0*(e-z*x))/0.002-((e-z*x)/0.002)*((e-z*x)/0.002));  }
  #include "stdio.h"
#include "9ffts.c"
    main()
    {  double a,eps,e,k,fy1,fy2,es1,es2,h,ey1,ey2;
      double z,xx1,xx2,gh1,gh2,t11,b;
      double a12,b12,t12,h0,yn;
      k=0.50;
      h0=315.0;
      while(e<=0.0033)
      z=e/(k*h0);
      xx1=300.00;
      xx2=-300.00;
      gh1=0.002/z;
      a=0.0; b=k*h0-gh1; eps=0.000001;
      t11=ffts(a,b,eps,f11);
    a=k*h0-gh1; b=k*h0; eps=0.000001;
      t12=ffts(a,b,eps,f12);
     yn=t11+t12;
    while ((xx2<=yn)&&(yn<=xx1))
       z=e/(k*h0);
       scanf("%f,%f,%f",&e,&k,&z);
        if(yn<xx2)
         do {k=k+0.0001;}
         while (xx2<=yn);
        if(yn>xx1)
          do {k=k-0.0001;}
         while (yn<=xx1);
        printf("%f\n","%f\n",&z,&yn);
      return 0;
     }
 #include "math.h"   
  double fftsf(x,e,z)
  double x;
  { double y;
    y=f11(x,e,z);
    return(y);
  }

   double fftsf(x,e,z)
  { double y;   (错误:重复定义函数fftsf)
    y=f12(x,e,z);
    return(y);
  }
不知道问题出在哪啊?
2008-07-29 16:15
liaobiao0903
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-7-26
收藏
得分:0 
楼主帮忙看一哈啊,谢谢了。
2008-07-29 16:21
liaobiao0903
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-7-26
收藏
得分:0 
我发现你们不是来讨论帮助别人的,为什么把程序发在这里,就是有问题啊!再有你上面编译出来的东西,我这里没有出现。那什么样的代码才舒服呢?你要说出来啊!大哥,这是关于我专业的程序,不是C语言课本里的一些你觉得舒服的东西。在指出错误的同时,应该提出一些改进的意见和建议才是吧。
2008-07-29 19:48
liaobiao0903
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-7-26
收藏
得分:0 
对于楼主没有找到的函数是这样的。有两个,把他们放到INCLUDE目录下就可以了。
一个是:
 #include "math.h"
  double ffts(a,b,eps,f)
  double a,b,eps,(*f)();
  { int n,k;
    double fa,fb,h,t1,p,s,x,t;
    fa=(*f)(a); fb=(*f)(b);
    n=1; h=b-a;
    t1=h*(fa+fb)/2.0;
    p=eps+1.0;
    while (p>=eps)
      { s=0.0;
        for (k=0;k<=n-1;k++)
          { x=a+(k+0.5)*h;
            s=s+(*f)(x);
          }
        t=(t1+h*s)/2.0;
        p=fabs(t1-t);
        t1=t; n=n+n; h=h/2.0;
      }
    return(t);
  }
另外一个是:
   #include "stdio.h"
  #include "9ffts.c"
  main()
  { double a,b,eps,t,fftsf(double);
    a=0.0; b=1.0; eps=0.000001;
    t=ffts(a,b,eps,fftsf);
    printf("\n");
    printf("t=%e\n",t);
    printf("\n");
  }

  #include "math.h"
  double fftsf(x)
  double x;
  { double y;
    y=exp(-x*x);
    return(y);
  }

我自己的程序我作了修改了,还有一个警告,不晓得怎么改。
 double f11(double x,double e,double z)
  {
 if((e<=0.002)&&(e>=0.0))
  return 16.7*((2.0*(e-z*x))/0.002-((e-z*x)/0.002)*((e-z*x)/0.002));
     else if((e<=0.0033)&&(e>=0.002))
    return 16.7*((1.0-0.15*((e-z*x)-0.002)/0.0013));
      else return 0;
    }


      double f12(double x,double z,double e)
      {
      return 16.7*((2.0*(e-z*x))/0.002-((e-z*x)/0.002)*((e-z*x)/0.002));

      }


  #include "stdio.h"
    #include "9ffts.c"
    main()
    {
      double a,eps,e,k,fy1,fy2,es1,es2,h,ey1,ey2;
      double z,xx1,xx2,gh1,gh2,t11,b;
      double a12,b12,t12,h0,yn;
      scanf("%f",&e);
      k=0.50;
      h0=315.0;
      while(e<=0.0033)
      z=e/(k*h0);
      xx1=300.00;
      xx2=-300.00;
      gh1=0.002/z;
      a=0.0; b=k*h0-gh1; eps=0.000001;
      t11=ffts(a,b,eps,f11);
    a=k*h0-gh1; b=k*h0; eps=0.000001;
      t12=ffts(a,b,eps,f12);
     yn=t11+t12;
    while ((xx2<=yn)&&(yn<=xx1))
       z=e/(k*h0);
       scanf("%f,%f,%f",&e,&k,&z);
        if(yn<xx2)
         do {k=k+0.0001;}
         while (xx2<=yn);
        if(yn>xx1)
          do {k=k-0.0001;}
         while (yn<=xx1);
        printf("z= %f\n","yn= %f\n",&z,&yn);
      return 0;
     }
 #include "math.h"
  double fftsf(x,e,z)
 {
  { double y;
    y=f11(x,e,z);
    return y;
    }

    {
    double y;
    y=f12(x,e,z);     (warning:unreachable code)
    return(y);
     }
       }
2008-07-29 21:47
liaobiao0903
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-7-26
收藏
得分:0 
用的是TC3.0,有更好的编辑器么?
2008-07-30 09:08
快速回复:大家帮忙看看我的程序啊!急!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031024 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved