2012-03-04 36 views

回答

2

你应该使用访问和[]()数组项。

此外,你应该应用功能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]); 
1

要访问单独的数组元素,使用[](不是()

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

你可能还需要调用dist()功能其他对

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

除了明显的错误 - 访问数组元素与()代替[],也有你的代码中的一些其他的逻辑问题。表达式

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

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

你可能想

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分钟内问为什么你的输出比你预期的不同返回。

相关问题