題目是輸入一組數,然後輸出相鄰兩個數的和。我用迭代器做出,代碼如下,但是輸入
一組數後敲即回車,程序沒有反應,即沒有出現相鄰兩項的和,為什麼?請指教!
#include
#include
using namespace std;
int main()
{
vector vInt;
int iVal;
cout << "請輸入一組數字:" << endl;
while (cin >> iVal)
{
vInt.push_back(iVal);
}
if (vInt.cbegin() == vInt.cend())
{
cout << "沒有任何元素" << endl;
return -1;
}
cout << "相鄰兩項的和依次為:" << endl;
for (auto it = vInt.cbegin();it != vInt.cend()-1;it++)
{
cout << (*it + *(++it)) << " ";
if ((it - vInt.cbegin() + 1) % 10 == 0)
cout << endl;
}
if (vInt.size() % 2 != 0)
cout << *(vInt.cend() - 1);
return 0;
}
附圖
可以試試修改為:
cin >> iVal;
while (iVal) // 輸入零結束 while
{
vInt.push_back(iVal);
cin >> iVal;
}