| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1476 人关注过本帖
标题:用矩形法求定积分,输出结果全是零,不知道错在哪
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:4 
回复 9楼 邹特强
因为int型和double的储存数据类型方式不同~
基本一点就是sizeof(int)和sizeof(double)的值不同~
PS:至于整数赋值给实数~默认会小数部分为0~

[此贴子已经被作者于2017-2-19 00:04编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-02-18 23:57
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
收藏
得分:0 
回复 10楼 炎天
哈哈,版主说笑了

............
2017-02-19 15:42
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
收藏
得分:0 
回复 11楼 九转星河
谢了

............
2017-02-19 15:45
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
收藏
得分:0 
程序代码:

#include <stdio.h>
#include <math.h>
static double definite_integral(int a,int b,double (*p)(double));
int main()
{
    printf("sinx在0到1上的积分值是:%7.4lf\n",definite_integral(0,1,sin)); 
    printf("cosx在0到1上的积分值是:%7.4lf\n",definite_integral(0,1,cos));
    printf("e^x在0到1上的积分值是:%7.4lf",definite_integral(0,1,exp));
    return 0;
}
static double definite_integral(int a,int b,double (*p)(double))
{
    double fx=0;
    double n;
    double c,d;
    for(n=1;n<=1000;n++)
    {
        c=a+(b-a)*1.0/1000*n;    //这里我加上了*1.0
        d=(*p)(c);
        fx=fx+(b-a)*1.0/1000*d;    //同上,运行看看结果是否你要的结果
    }
    return fx    ;
}
2017-02-19 15:49
快速回复:用矩形法求定积分,输出结果全是零,不知道错在哪
数据加载中...
 
   



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

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