C++ 打印每行有n个数字的数组
我正在用一个名为myIntArray的数组构建一个类,该数组在构造函数中被初始化为所有9。然后,我构建了一个名为printary(inty)的函数,它以每行y个数字打印数组。我的问题是,它将数组的最后10个元素打印为0,而它们应该都是9。谁能告诉我为什么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
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};col STD::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的值进行绑定。使用调试器会使问题变得显而易见。