![](/img/trans.png)
[英]c++ Xcode expected '(' for function-style cast or type construction
[英]C++: “Expected '(' for function-style cast or type construction” Error
有誰知道我的代碼有什么問題? 我正在嘗試創建一個輸出整數向量的交替和的程序。 例如,如果輸入是 1 2 3 4,那么結果將是 1-2+3-4 = -2。 如果用戶輸入“y”,程序也將繼續運行,並在用戶輸入“n”時停止。
我知道我的代碼中存在語法錯誤:將整數作為向量輸入時以及調用 alter_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;
}
正如其他人所提到的,有很多問題需要解決。 cin >> vector<int> input;
第一個想到的名字, cin >> vector<int> input;
您在輸入語句中聲明了一個變量,但也不能將cin >>
轉換為向量,它在語法上不起作用。
您必須循環獲取用戶提供的每個數字輸入,然后以這種方式將其放入數組中。 為此,您將編寫如下內容:
vector<int> v;
int input;
while (cin >> input)
v.push_back(input);
這樣做的原因是cin >>
實際上只吃第一個輸入值,直到它看到空格或EOF
,所以如果您輸入類似1 2 3 4 5
則cin >> input
行只會在第一次調用時獲取值1
。
double result = alternating_sum(vector<int> input);
你還需要把它寫成
double result = alternating_sum(input);
由於已經定義了輸入,因此無需再次執行:)
@samualnj 也給了你另一個答案!
一切順利,繼續編碼:D
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.