You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dev-C++报C++语法错误:inversi(k)处需构造/析构/类型转换

问题解析:Dev-C++中inversi(k)的语法错误

嘿,我来帮你彻底搞懂这个错误的根源:

核心错误:非法的语法写法

你代码最开头的两行:

inversi(k)= 1.0 / k; //k取值范围为1到5
quadrati (k)= k*k; //k取值范围为1到5

这是完全不符合C语法规则的写法。C里没有“给函数名加参数后直接赋值”这种操作——这既不是函数声明,也不是函数调用,更不是合法的表达式。看起来你可能是想给这两个函数做个功能说明,但用了错误的代码形式,编译器看到inversi(k)这种写法时,完全无法理解你的意图,它会默认你试图定义某种类相关的实体(比如构造函数、析构函数)或者类型转换操作,所以才抛出了ERROR c++ expected constructor, destructor, or type conversion before '(' token的错误提示。

额外需要修复的小问题

除了上面的核心错误,你的代码还有一处语法小问题:
在funzsomma函数的循环里,你写了s= s+f(i)...,这里的...是多余的,而且会导致语法错误,应该改成完整的语句:

for (i=1; i<=n; i++) {
    //求和
    s = s + f(i);
}

修正后的完整代码示例

#include <iostream>
using namespace std;

// inversi(k) 返回k的倒数,k取值范围为1到5
double inversi(int k){ return 1.0/k; }
// quadrati(k) 返回k的平方,k取值范围为1到5
double quadrati (int k){ return (double)k*k; }

double funzsomma(int n,double (*f) (int k)){
    double s=0;
    int i;
    for (i=1; i<=n; i++) {
        //求和
        s = s + f(i);
    }
    return s; // 别忘了返回求和结果
}

// 可以加个main函数测试
int main() {
    cout << "倒数求和(1-5): " << funzsomma(5, inversi) << endl;
    cout << "平方求和(1-5): " << funzsomma(5, quadrati) << endl;
    return 0;
}

内容的提问来源于stack exchange,提问作者Matteo Toma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:42:10