| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1453 人关注过本帖
标题:新手求教,用C语言实现整数阶贝塞尔函数的程序,真心看不出来哪里错了,请各 ...
只看楼主 加入收藏
hanluxidian
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-8-3
结帖率:0
收藏
已结贴  问题点数:5 回复次数:7 
新手求教,用C语言实现整数阶贝塞尔函数的程序,真心看不出来哪里错了,请各位高手帮忙
图片附件: 游客没有浏览图片的权限,请 登录注册
贝塞尔函数表达式



以下为程序代码
#include<stdio.h>
#include<math.h>
void main()
{
  
  long jiecheng(int i);
  int n,k;
  double x,jn;
  
  FILE *fp;
  fp=fopen("D:\\my project\\c\\0031.dat","w");
  jn=0.0;
  printf("in put n");
  scanf("\n%d",&n);
  for(x=0.0;x<15.0;x=x+0.1)
  {
    for(k=0;k<15;k++)
    {
      jn=jn+pow(-1,k)*pow(x/2,(2*k+n))/jiecheng(k)/jiecheng((n+k));  
    }
    fprintf(fp,"%f,%f\n",x,jn);
    printf("\n%f,%f\n",x,jn);
    jn=0.0;
  }
   fclose(fp);
}


   long jiecheng(int i)
   {
     long int p=1;
     int n;
     if(i==0)
         p=1;
     else
     {
     for(n=1;n<=i;n++)
     {
       p=p*n;
     }
     }
     return(p);
   }
搜索更多相关主题的帖子: include C语言 表达式 
2012-08-24 20:44
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:1 
scanf("\n%d",&n);改成
scanf("%d",&n);

总有那身价贱的人给作业贴回复完整的代码
2012-08-24 21:00
包头师范学校
Rank: 2
等 级:论坛游民
帖 子:26
专家分:51
注 册:2012-8-24
收藏
得分:1 
程序代码:
#include<stdio.h>
#include<math.h>
void main()
{

 

  long jiecheng(int i);
  int n,k;
  double x,jn;

 

  //FILE *fp;//你这里为什么要打开文件呀?你把这些注释调能行啊。
  //fp=fopen("D:\\my project\\c\\0031.dat","w");
  jn=0.0;
  printf("in put n");
  scanf("\n%d",&n);
  for(x=0.0;x<15.0;x=x+0.1)
  {
    for(k=0;k<15;k++)
    {
      jn=jn+pow(-1,k)*pow(x/2,(2*k+n))/jiecheng(k)/jiecheng((n+k)); 

    }
    //fprintf(fp,"%f,%f\n",x,jn);
    printf("\n%f,%f\n",x,jn);
    jn=0.0;
  }
   //fclose(fp);
}


   long jiecheng(int i)
   {
     long int p=1;
     int n;
     if(i==0)
         p=1;
     else
     {
     for(n=1;n<=i;n++)
     {
       p=p*n;
     }
     }
     return(p);
   } 
2012-08-24 21:02
hanluxidian
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-8-3
收藏
得分:0 
我是想把数据导入一个.dat的文件
2012-08-24 22:13
hanluxidian
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-8-3
收藏
得分:0 
大神们,刚才我都试了一下,数据跟原来还是一样的
2012-08-24 22:15
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:1 
阶乘计算溢出了。在32位编译器里 long int 和 int 是一样的。所以你的 jiecheng 只能正确计算0-12,13及以后的结果都是错误的。

另外,直接用公式计算受计算机计算精度的影响太大效率也很低下,调整一下计算顺序可以很有效的降低误差提高运算效率。

5分,就提示这么多了。

重剑无锋,大巧不工
2012-08-24 22:52
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:1 
我就是来看看贝塞尔函数的公式。
2012-08-30 01:47
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:1 
这个我坚决不看   坚决抵制  恶心数学方面的  什么 什么 什么的  太费脑子

我要成为嘿嘿的黑客,替天行道
2012-08-30 09:04
快速回复:新手求教,用C语言实现整数阶贝塞尔函数的程序,真心看不出来哪里错了 ...
数据加载中...
 
   



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

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