【发布时间】:2019-11-03 22:52:11
【问题描述】:
我想要一个函数或循环遍历数组并打印出每个元素,直到它打印出 10 个元素。在这种情况下,将开始新的一行并继续打印。例如。 1 2 3 4 5 6 7 8 9 10
这是为一个像 50 多岁的家庭主妇一样处理数组的程序,对所述数组执行许多计算和更改。
这是我目前对问题背后逻辑的攻击。
int main()
{
test = new int[100];
for (int i = 0; i < 100; i++){
//Set array to rand
test[i] = rand() % 44 + 55;
}
printf("original List\n");
for (int i = 0; i < 100; i++){
// print original order
printf("%d\n", test[i]);
}
sortArr;
// function call sort array ascend
printf("\Sorted List\n");
for (int i = 0;i < 100;i++) {
// print sorted order
printf("%d , ", test[i]);
int temp;
//temp counter for width of printout
for (temp = 0;temp < 10;temp++) cout<< "\n" << endl;
sum += test[i];
}
预期是一个输出块,由网格中的 100 个数组元素组成,每行宽度为 10 个元素。
实际结果是一堆新的循环,让我更加头疼。
【问题讨论】:
-
嗯,你对运行十次的
for循环有什么期望,每次循环打印一个换行符,然后是另一个换行符(来自std::endl)?如果您预期的不是连续的 20 个换行符,您能解释一下为什么您预期的不是这个非常简单的 for 循环的简单结果吗?你想要的只是每 10 个元素后一个换行符。您碰巧已经在使用i来计算每个元素,因为它被打印出来,所以只需每十个is 添加一个换行符。 -
@SamVarshavchik 请客气点?
-
我预计在 for 循环 10 次计数后会出现换行符,但似乎理解您所说的换行符因此呈指数增长的问题。
-
您正在打印一个换行符,然后是
std::endl在一个不执行任何其他操作的循环中。当然,最终结果将是连续 20 个换行符。