考虑这个数据序列:“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/