c++ - 如何编写以负数结尾的循环 (MyProgrammingLab 11138)

标签 c++

考虑这个数据序列:“3 11 5 5 5 2 4 6 6 7 3 -8”。任何与前一个值相同的值都被视为连续重复。在此示例中,有三个这样的连续重复项:第二个和第三个 5 以及第二个 6。请注意,最后一个 3 不是连续重复项,因为它前面有一个 7。 编写一些代码,使用循环读取这样一个以负数结尾的非负整数序列。当代码退出循环时,它应该打印遇到的连续重复的数量。在上述情况下,该值为 3。

这是MyProgrammingLab练习题11138的一道题,需要用C++写,目前还不允许使用数组。非常感谢你的帮助。我真的很感激。

这是我目前所拥有的:

int firstNumber;
int secondNumber;
int duplicates;

secondNumber = duplicates = 0;
cin >> firstNumber;

while (firstNumber > -1 && secondNumber > -1)
{
    secondNumber 
    if (firstNumber == secondNumber)
    {
        duplicates++
    }
    firstNumber = secondNumber;
}

cout << duplicates;

最佳答案

你快到了。只需要一点点改变。

cin >> firstNumber;
while ( firstNumber > -1 ) { // only firstNumber alone can handle this.
    cin >> secondNumber;
    if (firstNumber == secondNumber)
        duplicates++;
    else
        firstNumber = secondNumber;
}

编辑 - 正如 Bob__ 所建议的那样,一个 cin 也可以解决这个问题。

int firstNumber,secondNumber = -1, duplicates = 0;
do {
    cin >> firstNumber;
    if ( secondNumber == -1) {
        secondNumber = firstNumber;
    }else {
        if ( secondNumber == firstNumber ) 
            duplicates++;
        else
            secondNumber = firstNumber;
    }
} while(firstNumber > 0 );

关于c++ - 如何编写以负数结尾的循环 (MyProgrammingLab 11138),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39582732/

相关文章:

c++ - 用于获取 C++ 中所有类型和集合的调试字符串的通用函数

c++ - 有没有可以枚举端口的跨平台c++串口库?

c++ - CMake 包含非 cmake 库的第三方 header

c++ - 远程调试 windows 8.1 驱动 Visual studio 2013

c++ - 为什么一次又一次调用 popn() 时返回相同的输出

c++ - 如何使用 ncurses 库让 Player 与 Monster 交互?

c++ - 仅在堆栈上构造的类;不带新的。 C++

c++ - 程序在已识别 union 的拷贝构造函数内部崩溃

c++ - 多少位用于指数

c++ - ai junkie 神经网络教程 - 不明白