【发布时间】:2018-11-05 08:30:32
【问题描述】:
有人知道我的代码有什么问题吗?我正在尝试创建一个输出整数向量的交替和的程序。例如,如果输入是 1 2 3 4,那么结果将是 1-2+3-4 = -2。如果用户输入“y”,程序也会继续运行,并在用户输入“n”时停止。
我了解我的代码中存在语法错误:将整数作为向量输入时以及调用alternating_sum 函数时。不过,我不知道如何解决它。
这是我目前所拥有的:
#include <iostream>
#include <vector>
using namespace std;
double alternating_sum(vector<int> numbers)
{
double sum = numbers[0];
for (int i = 1; i < numbers.size(); i++) // i = position in vector
{
if (i % 2 == 0) // if i is even
{
sum += numbers[i];
}
else // if i is odd
{
sum -= numbers[i];
}
}
return sum;
}
int main()
{
char response;
while (true)
{
cout << "Enter a list of integers: ";
cin >> vector<int> input;
double result = alternating_sum(vector<int> input);
cout << "Continue (y/n)? ";
cin >> response;
if (response == 'n')
{
break;
}
}
return 0;
}
【问题讨论】:
-
什么是语法错误?它们出现在哪一行?
-
第 32 行:cin >> 向量
输入;和第 34 行:double result = altering_sum(vector input); -
@CatherineJennifer -- 如果问题在于输入值,那不应该是重点,而不是计算吗?创建一个小程序,将值一个一个地输入到向量中,并且只完成这项工作。如果您对此有疑问,那么您可以专注于提问。计算代码让人们相信问题出在计算上。
-
cin >> vector<int> input;Your rubber duck 想知道为什么要在输入语句中声明变量。 -
@scohe001 我懒得指出所有这些错误的 OP 代码,而是我可以给出一个简单的修复,并建议他阅读有关 std::vector 的一些内容。