| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1387 人关注过本帖
标题:求5个函数积分的小程序,为这么编译的时候总出现这个错误:error C2664?求 ...
取消只看楼主 加入收藏
jinxin3256
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-9-7
收藏
 问题点数:0 回复次数:4 
求5个函数积分的小程序,为这么编译的时候总出现这个错误:error C2664?求高人指点

#include <stdio.h>
#include <math.h>
int main()
{float f1(float); /*函数声明*/
float f2(float); /*函数声明*/
float f3(float); /*函数声明*/
float f4(float); /*函数声明*/
float f5(float); /*函数声明*/
float intergral(float,float,float (*fun)()); /*函数声明*/
float a,b;
printf("enter a,b:"); /*输入定积分限*/
scanf("%f,%f",&a,&b);
printf("f1's value is:");
intergral(a,b,f1);
printf("f2's value is:");
intergral(a,b,f2);
printf("f3's value is:");
intergral(a,b,f3);
printf("f4's value is:");
intergral(a,b,f4);
printf("f5's value is:");
intergral(a,b,f5);

return 0;
}


float f1(float x) /*函数定义*/
{float y;
y=x*(1+x);
return(y);
}
float f2(float x) /*函数定义*/
{float y;
y=x*(2*x+3);
return(y);
}
float f3(float x) /*函数定义*/
{float y;
y=exp(x)+1;
return(y);
}
float f4(float x) /*函数定义*/
{float y;
y=(1+x)*(1+x);
return(y);
}
float f5(float x) /*函数定义*/
{float y;
y=pow(x,3);
return(y);
}
void intergral(float a,float b,float (*fun)(float)) /*函数定义*/
{float t1=a,t2=b,f_incre=0.000001,result=(fun(a))*f_incre;
while(t1<t2)
{t1=t1+f_incre;
result=result+(fun(t1))*f_incre;
}
printf("%10.6e\n",result);
}


................: error C2664: 'intergral' : cannot convert parameter 3 from 'float (float)' to 'float (__cdecl *)(void)'

[此贴子已经被作者于2007-9-8 11:41:58编辑过]

搜索更多相关主题的帖子: float 函数 高人 积分 
2007-09-07 15:27
jinxin3256
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-9-7
收藏
得分:0 
非常感谢!还有点不明白,为什么如果在函数定义f_intergral()中,如果把fuc改为(*fuc),是可行的,但在其函数体内不能改为(*fuc)?

代替leisure1980广告下: 群号45146331
2007-09-08 09:51
jinxin3256
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-9-7
收藏
得分:0 

谢谢!
可否理解为在函数定义中,用(*fuc)()定义的函数等同于fuc(),在调用时不能用(*fuc())而只能用fuc()?

[此贴子已经被作者于2007-9-8 10:49:01编辑过]


代替leisure1980广告下: 群号45146331
2007-09-08 10:42
jinxin3256
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-9-7
收藏
得分:0 
2):先定义后用地址负值:
int (*pfun)(int,int);
pfun=fun;

那么,可不可以认为这样定义后,pfun()=fun()?可以在后面的函数调用里直接用pfun()了吗
还是调用时,应该用(*pfun)()来进行调用?

代替leisure1980广告下: 群号45146331
2007-09-08 14:37
jinxin3256
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-9-7
收藏
得分:0 

也就是说如果再用(*fun)(),就出现错误了对吗,老谭的书上就是这么写的(第二版P244),真晕晕啊

[此贴子已经被作者于2007-9-8 15:53:15编辑过]


代替leisure1980广告下: 群号45146331
2007-09-08 15:53
快速回复:求5个函数积分的小程序,为这么编译的时候总出现这个错误:error C266 ...
数据加载中...
 
   



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

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