錯誤代碼
vector<int> res_var;
res_var = var[i] + var[i+1]; // 錯誤:無法將 int 賦值給 vector<int>
cout << res_var; // 錯誤:vector 無 operator<< 重載
if (var.size() % 2 = 1) // 錯誤:= 是賦值,非比較
錯誤解析
- 類型不匹配:
var[i] + var[i+1] 是 int,不能直接賦值給 vector<int>。應定義 int sum = var[i] + var[i+1]; 或 res_var.push_back(sum);。
- 缺少輸出重載:標準庫未為
vector 提供 operator<<,需手動遍歷輸出。
- 條件判斷寫錯:
if (var.size() % 2 = 1) 應為 ==。
修正版代碼
#include <iostream>
#include <vector>
using namespace std;
int main() {
int word;
vector<int> var;
cout << "Please enter a group numbers (Ctrl+Z to end):" << endl;
while (cin >> word) {
var.push_back(word);
}
for (vector<int>::size_type i = 0; i + 1 < var.size(); i += 2) {
int sum = var[i] + var[i+1];
cout << sum << " ; ";
}
if (var.size() % 2 == 1) {
cout << "The last one no add." << endl;
}
return 0;
}
進階技巧