我正在嘗試爲a和b輸入整數,然後將這些整數放在一起。例如,對於a輸入1 2 3 4,對於b輸入4 3 2 1將產生:1 2 3 4 4 3 2 1.我不明白爲什麼我的程序不打印這個。每當我輸入-1時,什麼都不會發生。我在程序運行時做了錯誤的過程嗎?幫助表示讚賞。追加矢量。結果將不會打印
#include <iostream>
#include <vector>
using namespace std;
vector<int> append(vector<int> a, vector<int> b)
{
int n = a.size();
int m = b.size();
vector<int> c(n + m);
int i;
for (i = 0; i < n; i++)
c[i] = a[i];
for (i = 0; i < m; i++)
c[n + i] = b[i];
return c;
}
main()
{
vector<int>a, b, c;
int temp;
cin >> temp;
while (temp != -1) {
a.push_back(temp);
cin >> temp;
}
cin >> temp;
while (!cin.eof()) {
b.push_back(temp);
cin >> temp;
}
c = append(a, b);
for (int i = 0; i < c.size(); i++)
cout << c[i] << " ";
cout << endl;
}
參數閱讀中的第二個while循環似乎是錯誤的。 – UldisK
我在做什麼是輸入任何整數,如「23432」和按回車。然後輸入另一個整數,例如「64364」並按回車。然後我輸入-1。我認爲這會打印出「2343264364」。它只是打印一個空白。 – user3555941
即使不必要地複製輸入向量,您的追加功能也能正常工作。您應該縮小問題範圍並刪除不相關的代碼。如果您在執行許多不同操作的代碼時遇到問題,請將其分解爲單個責任部分,然後依次測試每個部分。 – juanchopanza