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

C++ C++;While循环检查最新输入int,c++,C++,我需要一个程序,检查输入的数字与最新的输入,如果它是真的-显示有多少数字输入(与最新的2相同); 例如: 输入:3524433535 产出:11 #include <iostream> using namespace std; int main() { int nr, am, last; cin >> nr; last = nr; am = 1; while (nr != last){ cin >>

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

输入:3524433535

产出: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;
}
#包括
使用名称空间std;
int main()
{
国际号码,上午,最后;
cin>>天然橡胶;
last=nr;
am=1;
while(nr!=最后一次){
cin>>天然橡胶;
last=nr;
am=am+1;
}

cout在while-guard last!=nr中从来都不是真的,因为您首先从cin读取,然后最后更新。这两条语句应该切换,最后也用(例如)-1初始化,所以while循环是第一次进入的

最后初始化:

last = -1;
在此期间:

last = nr;
cin >> nr;

您永远不会进入while循环,因为您正在测试前将
nr
分配给
last

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

while
条件在进入循环之前被评估

如果输入的第一个数字是最后一个初始化的数字(例如-1),它将停止并显示仅输入了一个数字。这是正确的。为了避免这种情况,您应该在最后检查while条件。因此使用
do{…}while(nr!=last);
改为循环。在这种情况下,上次如何初始化并不重要。