打印每行包含 n 个数字的数组

Printing an array with n numbers per line

本文关键字:数字 数组 包含 打印      更新时间:2023-10-16

我正在用一个名为myIntArray的数组构建一个类,该数组在构造函数中初始化为所有9。然后,我构建了一个名为printArray(int y)的函数,该函数打印每行带有y个数字的数组。我遇到的问题是它将数组的最后 10 个元素打印为 0,而它们应该都是 9。 谁能告诉我为什么??

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';
        }
}

您尝试访问数组末尾之后的许多元素,正如有人已经评论的那样。第二个循环是冗余的。请考虑使用除法余数 '%'。

 for(int row{0}; row < ARRAY_SIZE; ++row) {
        std::cout << myIntArray[row];
        if (!((row+1) % y) ) {
            std::cout << 'n';
        }
    }

你的printArray函数很奇怪。在外部循环和内部循环中递增行变量,因此会丢失某些元素,因为将行递增两次。请注意,您还可以根据 y 的价值伸出债券。