编程出错
#include "stdafx.h"using namespace std;
double even(int n)
{
int k;
double sum;
sum=1.0;
for(k=2;k<=n;k=k+2)
sum=sum+1/(double)k;
return sum;
}
double odd(int n)
{
int k;
double sum;
sum=1.0;
for(k=3;k<=n;k=k+2)
sum=sum+1/(double)k;
return sum;
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
double (*p)();
cout<<"input n:"<<endl;
cin>>n;
if(n>1)
{ if(n%2==0)p=even;
else p=odd;
cout<<"even/odd="<<(*p)(n)<<endl;
}
else cout<<"ERR!"<<endl;
return 0;
}
总是出现以下3个错误,请高手指点.
万分感谢
1. d:\vc.net\fasdf\fasdf\fasdf.cpp(38): error C2440: “=” : 无法从“double (__cdecl *)(int)”转换为“double (__cdecl *)(void)”
2. d:\vc.net\fasdf\fasdf\fasdf.cpp(39): error C2440: “=” : 无法从“double (__cdecl *)(int)”转换为“double (__cdecl *)(void)”
3. d:\vc.net\fasdf\fasdf\fasdf.cpp(40): error C2197: “double (__cdecl *)(void)” : 通过指向函数的指针调用的参数太多
[ 本帖最后由 xinyuxf 于 2007-11-7 11:03 编辑 ] 兄弟你的那个函数指针“double (*p)();”声明的有问题,改成double (*p)(int)试试。 试过了,还是不行 是你定义的变量类型不匹配
页:
[1]