C ++ While循环检查最新输入int

时间:2013-11-24 14:22:28

标签: c++

我需要一个程序,用最新输入检查输入数字,如果是真的 - 显示输入了多少数字(最新2个相同); 例如:

输入:3 5 24 4 3 5 3 5 3 5 5

输出:11

#include <iostream>

using namespace std;

int main()
{
    int nr, am, last;
    cin >> nr;
    last = nr;
    am = 1;
    while (nr != last){
        cin >> nr;
        last = nr;
        am = am + 1;
    }
    cout << am;
    return 0;
}

我稍后会重写代码来处理文件,我只需要先让它工作。此外,我不想得到完成的代码,我想知道我的错误,或者我正在朝着正确的方向前进。感谢。

2 个答案:

答案 0 :(得分:2)

在守卫最后!= nr永远不会是真的,因为你首先从cin读取然后最后更新。应该切换这两个语句,也用(例如)-1初始化,所以第一次输入while循环。

初始化最后:

last = -1;

在你的时间:

last = nr;
cin >> nr;

答案 1 :(得分:1)

您永远不会输入您的while循环,因为您在考试前将nr分配给last

last = nr;
// ...
while (nr != last){
 // ...
}

while条件在>进入循环之前进行评估。