C++ 打印每行有n个数字的数组

C++ 打印每行有n个数字的数组,c++,C++,我正在用一个名为myIntArray的数组构建一个类,该数组在构造函数中被初始化为所有9。然后,我构建了一个名为printary(inty)的函数,它以每行y个数字打印数组。我的问题是,它将数组的最后10个元素打印为0,而它们应该都是9。谁能告诉我为什么 class MyList { public: MyList(); void printArray(int y); private: const static int ARRAY_SIZE{1000}; int myIntArray[ARRAY

我正在用一个名为myIntArray的数组构建一个类,该数组在构造函数中被初始化为所有9。然后,我构建了一个名为printary(inty)的函数,它以每行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';
        }
}
类MyList
{
公众:
MyList();
无效打印数组(int-y);
私人:
常量静态整数数组{1000};
int myIntArray[数组大小];
};
void MyList::printary(int y)
{
for(int行{0};行<数组大小;++行)
{
for(int col{0};colSTD::CUT

你试图访问许多元素在数组的末尾,就像某人已经注释过的。第二个循环是多余的。考虑使用除法余数'%'。

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

std::cout你的printary函数很奇怪。你在外循环和内循环中增加了row变量,因此你错过了一些元素,因为将行增加了两次。请注意,你也可以根据y的值进行绑定。

使用调试器会使问题变得显而易见。