声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1587|回复: 3

[C/C++] 编程出错

[复制链接]
发表于 2007-11-5 22:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
#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 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-11-16 15:23 | 显示全部楼层
兄弟你的那个函数指针“double (*p)();”声明的有问题,改成double (*p)(int)试试。
 楼主| 发表于 2007-11-17 10:52 | 显示全部楼层
试过了,还是不行
发表于 2007-12-3 09:38 | 显示全部楼层
是你定义的变量类型不匹配
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-11 13:09 , Processed in 0.167393 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表