标题:(1)说转化double to float 有问题;(2)子函数名为什么不能用y1?
只看楼主
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
结帖率:92.86%
已结贴  问题点数:10 回复次数:6 
(1)说转化double to float 有问题;(2)子函数名为什么不能用y1?
#include<stdio.h>
#include<math.h>
float y2(float x)
{
  float y;
  y=sin(x);
  return(y);   
}
float y3(float x)
{
 float y;
 y=    cos(x);
 return(y);
}
float y4(float x)
{
   float y;
   y=exp(x);
   return(y);   
}
void process(float a,float b, float (*fun)(float) )
{
    float x,d,sum=0,z,i,k=10000;
    d=(b-a)/k;
    for(i=0;i<=k;i++)
    {
        x=a+d*i;
        z=(*fun)(x);
        sum+=z*d;
    }
    printf("%5.1f\n",sum);
}
void main()
{
  float a,b;
  scanf("%f,%f",&a,&b);
  process(a,b,y2);
  process(a,b,y3);
  process(a,b,y4);   
}

[ 本帖最后由 xdh0817 于 2011-11-8 23:23 编辑 ]
搜索更多相关主题的帖子: include process double return 
2011-11-08 23:10
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
得分:3 
并不是说有什么问题,只是你要看看每个类型......sin、cos它们输出的是double型,而你定义的y是float型.....要不你再改改
2011-11-09 15:20
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
得分:3 
转化double to float 没有问题,警告只是说将double型存到float中会造成数据精度损失。编译没有问题
2011-11-09 15:45
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
得分:0 
以下是引用heroinearth在2011-11-9 15:45:11的发言:

转化double to float 没有问题,警告只是说将double型存到float中会造成数据精度损失。编译没有问题
第一个被调用的函数名为什么不能使y1?m1,z1.。。。。。都可以,不能是y1?
2011-11-09 17:56
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
得分:3 
在math.h中,
_CRTIMP double  __cdecl j1(double);
_CRTIMP double  __cdecl jn(int, double);
_CRTIMP double  __cdecl y0(double);
_CRTIMP double  __cdecl y1(double);
_CRTIMP double  __cdecl yn(int, double);

y1已经被征用,呵呵。
收到的鲜花
  • xdh08172011-11-09 18:53 送鲜花  1朵   附言:哦
2011-11-09 18:50
huanega
Rank: 3Rank: 3
来 自:内蒙古
等 级:论坛游侠
帖 子:117
专家分:192
注 册:2011-11-4
得分:3 
可以强行转换类型!(float)

兴趣是编程最好的老师
2011-11-09 18:54
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
得分:0 
以下是引用silent_world在2011-11-9 18:50:26的发言:

在math.h中,
_CRTIMP double  __cdecl j1(double);
_CRTIMP double  __cdecl jn(int, double);
_CRTIMP double  __cdecl y0(double);
_CRTIMP double  __cdecl y1(double);
_CRTIMP double  __cdecl yn(int, double);

y1已经被征用,呵呵。




原来如此
2011-11-09 18:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-354664-1-1.html




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

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