我正试图数一串猫和狗。所以,
如果字符串是“ cc + dd-cd”,则:
我想算2 positive cats
,2 positive dogs
,1 negative cat
,1 negative dog
(是的,我知道这是算一个奇怪的方式,但它是我的任务的一部分)。
我考虑过要进行一个for循环,在该循环中遍历字符串,然后嵌套在for循环内,我会有一个while循环,该循环将一直运行到'-',然后一直运行到'+'或末尾。我开始编写代码,而没有深入探讨它,它创建了一个无限循环。
谢谢!
string animalparkString = "cc+dd-cd"
for (int k = 0; k != animalparkString.size(); k++)
{
while (k != '-'){
pdc = pdc + 1; //positive dog count
pcc = pcc + 1; //positive cat count
}
while (k != '+') {
ndc = ndc + 1;
ncc = ncc + 1;
}
}
直接的问题是while
循环会检查k
的值,但不要修改它。因此,一旦您输入了其中一个,您将无限期地停留在那里,因为k
在循环体内不会发生变化。
我不会打扰嵌套循环-我只需要在一个循环中遍历整个字符串,然后依次评估每个字符。完成此操作的一种好方法是保持状态是要添加还是要减去(根据您上次遇到的+
是-
符号还是符号:
bool positive = true;
string animalparkString = "cc+dd-cd";
for (int k = 0; k < animalparkString.size(); k++) {
char ch = animalparkString[k];
switch (ch) {
case '+':
positive = true;
break;
case '-':
positive = false;
break;
case 'c':
if (positive) {
pcc++;
} else {
ncc++
}
break;
case 'd':
if (positive) {
pdc++;
} else {
ndc++
}
break;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句