【发布时间】:2016-02-18 21:49:10
【问题描述】:
我需要打印一个包含 50 个值的 int 数组,该数组必须包含多行,并且每行不能有超过 15 个变量。谁能指出我正确的方向或解释我哪里出错了?
#include <iostream>
using namespace std;
int main()
{
int alhpa[51];
for(int i = 0; i < 51; i++)
{
alpha[i] = -1; // initializes all elements to -1
}
for(int i = 0; i < 51; i++)
{
for(int j = 0; j < 15; j++)
{
cout << alpha[j] << "\t";
}
cout << endl;
}
return 0;
}
所以上面的代码可以正常工作,但它并没有达到我的预期,如果你运行它,你会看到数组是按行打印的,每行确实有 15 个变量。问题是它只打印数组中的前 15 个元素,并且每次主循环执行过程都会重置,正如我上面所说,唯一的输出是一遍又一遍的前 15 个变量。
我需要弄清楚如何以与现在打印相同的方式打印此数组,但我需要处理和打印数组中的所有元素。
我知道最后一行不会有 15,因为应该只有 5 的空间,因为 15 * 3 = 45
任何帮助都会很棒!
【问题讨论】:
-
...上面的代码可以正常工作,只是没有达到我的预期。这不是“不起作用”的定义吗? ;) 双循环的逻辑不正确。想想你想在这里做什么。您希望每 15 个元素输出一个新行。因此,只需创建一个
for循环(i从 0 到 50)计算输出元素的次数,每次达到 15 时,输出换行符并重置计数器。 -
@RHertel 这将导致
i的大多数值发生访问冲突。 -
@lurker 这是真的。我注意到了;但我也注意到同时已经发布了一个正确的解决方案,所以没有必要纠正我的评论。我因此删除了它。