【发布时间】:2016-11-05 22:41:48
【问题描述】:
问题
我有 2 个数组,一个用于正数,一个用于负数。由于某种原因,如果要添加的第一个数字是负数,它会创建数组空间来添加数字,但插入的数字将始终为 0。
添加代码
这是我的 add 方法,它确定值是负数还是正数,并将值添加到适当的数组中:
bool MyClass::addInt(int valueToBeInserted){
if (valueToBeInserted >= 0){
if (posArrayIterator >= sizeOfMyArray){
return false;
} else {
cout << "added " << valueToBeInserted << "\n" << endl;
myPArray[posArrayIterator] = valueToBeInserted;
posArrayIterator ++;
return true;
}
} else {
if (negArrayIterator >= sizeOfMyArray){
return false;
} else {
cout << "added " << valueToBeInserted << "\n" << endl;
myNarray[negArrayIterator] = valueToBeInserted;
negArrayIterator ++;
return true;
}
}
}
输出
通过以下测试:
b.addInt(-1);
b.addInt(-3);
b.addInt(-9);
预期的输出是
[-1, -3, -9]
但输出是
[-3, -9, 0].
非常感谢任何帮助。
【问题讨论】:
-
建议:尽量避免使用全局变量。
-
调试器是解决此类问题的正确工具。 在询问 Stack Overflow 之前,您应该逐行逐行检查您的代码。如需更多帮助,请阅读How to debug small programs (by Eric Lippert)。至少,您应该 [编辑] 您的问题,以包含一个重现您的问题的 Minimal, Complete, and Verifiable 示例,以及您在调试器中所做的观察。
-
我相信这个错误不在提供的代码中。
标签: c++ arrays class if-statement