我正在使用名为myIntArray的数组构建一个类,该数组已初始化为构造函数中的所有9。然后,我构建了一个名为printArray(int y)的函数,该函数以每行y个数字打印该数组。我的问题是,当数组的最后10个元素全为9时,它将打印为0。谁能告诉我为什么?
class MyList
{
public:
MyList();
void printArray(int y);
private:
const static int ARRAY_SIZE{1000};
int myIntArray[ARRAY_SIZE];
};
void MyList::printArray(int y)
{
for(int row{0}; row < ARRAY_SIZE; ++row)
{
for(int col{0}; col < y; ++col)
{
std::cout << myIntArray[row] << " ";
++row;
}
std::cout << '\n';
}
}
答案 0 :(得分:0)
您已尝试访问数组末尾的许多元素,就像有人已经评论过的那样。第二个循环是多余的。考虑使用除法余数'%'。
for(int row{0}; row < ARRAY_SIZE; ++row) {
std::cout << myIntArray[row];
if (!((row+1) % y) ) {
std::cout << '\n';
}
}
答案 1 :(得分:0)
您的printArray函数很奇怪。您在外循环和内循环中增加行变量,因此会丢失某些元素,因为将行增加两次。请注意,根据y的值,您可以摆脱束缚。