- 已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
昨天关门了。
Improve this question
我试图创建一个13位数的数组,并将其填充到一个循环中,从48开始,偶数递减。我无法确切地告诉如何使用我的代码才能使其工作。
#include <iostream>
using namespace std;
int main() {
const int size = 13;
int arr[size] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
int a = 50;
while (a > 0){
a-=2;
cout << a << " " << endl;
for (int i = 0; i < size; i++)
{
arr[i] = a;
cout << i << " " << arr[i] << endl;
}
}
}
这是给一堆废话,我不明白。
3条答案
按热度按时间u4dcyp6a1#
使用迭代器和算法的无循环解决方案
ryevplcw2#
我不知道你为什么会有外循环,但看起来你对编码还是个新手,所以我不会给予你任何你不懂的东西,但我会解释为什么你会得到“一堆你不懂的废话"。
这将在
a
大于0时运行,但每次循环重新启动时都会这样做。因此会出现很多数字,你并不是真的在数组中“插入”一个数字,而是在每个循环中“替换”整个数组。Have a look at this, I inserted a few outputs which would show what is happening in your code.
不需要修改太多的代码,这里有一种方法可以做到这一点,而不是执行
while(a > 0)
,只需使用for
循环遍历Array,然后在每个循环中将a
递减2
,因为您的目标只是用13
的大小填充array
,而不需要等到a
中的正数用完。最后,下次请正确缩进您的代码,这将使您更容易理解您的代码,不仅对我们,而且对您也是如此。
vsaztqbk3#
使用两个基于范围的for循环就足够了。
如果要用递减范围
[48, 0)
中的偶数填充数组,则数组需要包含24
元素,而不是13
元素。这是一个演示程序,其中使用的不是基于范围的for循环,而是标准算法(当然,您可以使用上面显示的基于范围的for循环)。
程序输出为
同样,如果需要一个只有
13
元素的数组,则显式声明它,如下所示至于您的代码,当在外部while循环中重新输出内部for循环中的数组时,将其所有元素设置为a的当前值。
这没有道理。