错误C2064:术语的计算结果不是一个带1个参数的函数,我该如何克服这个错误

error C2064: term does not evaluate to a function taking 1 arguments, how do i overcome this error?

本文关键字:错误 函数 何克服 克服 参数 1个 术语 结果 一个 C2064 计算      更新时间:2023-10-16

我收到代码的这一部分的错误:

int R[] = {3, 4, 1, 2, 0, 5};
int L= dist (R(0),R(1)) + (R(1),R(2)) + (R(2),R(3)) + (R(3),R(4)) + (R(4),R(5));

我不知道如何解决这个错误。

应该使用[]而不是()访问数组项。

此外,您应该将函数dist分别应用于每对项目:

int L= dist(R[0],R[1]) + dist(R[1],R[2]) + dist(R[2],R[3]) + dist(R[3],R[4]) + dist(R[4],R[5]);

你也可以把它写在一个循环中:

int L = 0;
for (int i = 0; i < 5; i++)
    L += dist(R[i], R[i+1]);

要访问单个数组元素,请使用[](而不是()

int L = dist (R[0], R[1]) ...

您可能还想为其他对调用dist()函数

dist(R[0], R[1]) + dist(R[1], R[2]) + ...

除了使用()而不是[]访问数组元素这一明显错误之外,您的代码还存在其他一些逻辑问题。表达式

dist (R[0],R[1]) + (R[1],R[2])

不会做你想做的事。它将评估dist (R(0),R(1))并将其添加到R(2)中。术语CCD_ 13对计算没有影响。这就是逗号运算符,的工作原理。

你可能想要

int L= dist(R[0],R[1]) + dist(R[1],R[2]) + dist(R[2],R[3]) + dist(R[3],R[4]) + dist(R[4],R[5]);

而不是

int L= dist(R[0],R[1]) + (R[1],R[2]) + (R[2],R[3]) + (R[3],R[4]) + (R[4],R[5]);

您可能会在5分钟后返回,询问为什么您的输出与您预期的不同。