为什么iostream在这里不能正常工作?

时间:2020-03-18 09:03:31

标签: c++ data-structures linked-list iostream

这是我的主要爱好:

int main()
{
    LinkedList<int> L1; 
    LinkedList<int> L2;
    int val,k;

    cout<<"\nPlease enter int values to add to the list L1 (-1 to stop):\n";
    cin>>val;
    while(val != -1)
    {
        L1.InsertBeg(val);
        cin>>val;
    }
    L1.PrintList();

    cout << "\nPlease enter int values to add to the list L2 (-1 to stop):\n";
    cin >> k;
    while (k != -1)
    {
        L1.InsertBeg(k);
        cin >> k;
    }
    L1.PrintList();

    return 0;
}

这是输出:

请输入int值以添加到列表L1(-1停止):1 2 3 -1 [3] ---> [2] ---> [1] ---> NULL 请输入int值以添加到列表L2(-1停止):4 5 6 -1 [6] ---> [5] ---> [4] ---> [3] ---> [2] ---> [1] ---> NULL

但这不是预期的,预期的是:

请输入int值以添加到列表L1(-1停止):1 2 3 -1 [3] ---> [2] ---> [1] ---> NULL 请输入int值以添加到列表L2(-1停止):4 5 6 -1 [6] ---> [5] ---> [4] ---> NULL

那这里出了什么问题,为什么会这样?

1 个答案:

答案 0 :(得分:2)

您写

cout << "\nPlease enter int values to add to the list L2 (-1 to stop):\n";

但是您仍然将值添加到L1

while (k != -1)
    {
        L1.InsertBeg(k);
        cin >> k;
    }

您应该将此行更改为L2