【发布时间】:2014-06-05 07:12:39
【问题描述】:
我正在尝试为 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 循环似乎是错误的。
-
我正在做的是输入任何整数,例如“23432”并按回车键。然后键入另一个整数,例如“64364”并按回车键。然后我输入-1。我以为这会打印出“2343264364”。它只是打印一个空白。
-
尽管不必要地复制了输入向量,但您的附加功能仍然有效。您应该缩小问题范围并删除不相关的代码。如果您对执行许多不同操作的代码有问题,请将其拆分为单一职责部分并依次测试每个部分。