leey 发表于 2007-11-5 22:12

编程出错

#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 编辑 ]

jollyhope 发表于 2007-11-16 15:23

兄弟你的那个函数指针“double (*p)();”声明的有问题,改成double (*p)(int)试试。

leey 发表于 2007-11-17 10:52

试过了,还是不行

风花雪月 发表于 2007-12-3 09:38

是你定义的变量类型不匹配
页: [1]
查看完整版本: 编程出错