C++ 数组大小声明

C++ 数组大小声明,c++,C++,假设给我们一个数组a[10],它包含偶数和奇数。我们必须将偶数元素移动到另一个数组,比如b[10],将奇数元素(数字)移动到数组c[10]。数组中的数字由用户输入,这意味着我们不知道数组中奇偶元素的确切数量。L 假设数组b[10]中有5个偶数。对于剩余的5个偶数,它将打印一些垃圾值。 我希望不打印垃圾值您可以这样保存每个数组的内容大小: int a[10], b[10], c[10]; int b_length = 0, c_length = 0; ... for (int i = 0; i

假设给我们一个数组a[10],它包含偶数和奇数。我们必须将偶数元素移动到另一个数组,比如b[10],将奇数元素(数字)移动到数组c[10]。数组中的数字由用户输入,这意味着我们不知道数组中奇偶元素的确切数量。L 假设数组b[10]中有5个偶数。对于剩余的5个偶数,它将打印一些垃圾值。 我希望不打印垃圾值

您可以这样保存每个数组的内容大小:

int a[10], b[10], c[10];
int b_length = 0, c_length = 0;

...

for (int i = 0; i < 10; i++)
{
    if (a[i] % 2 == 0)
        b[b_length++] = a[i];
    else
        c[c_length++] = a[i];
}

实现这一点最简单、最直接的方法是保持两个计数,以跟踪插入
b
c
数组的项目数。请注意,为了知道在何处插入下一项,您必须执行此操作

例如,您可以声明
b_count
c_count
变量并将它们初始化为零。如果数字为偶数,则将数字写入
b[b_count]
,然后将1添加到
b_count
,如果数字为奇数,则对
c
c_count
也是如此

然后从0循环到(但不包括)要枚举的任何数组的count变量



我没有在这里编写任何代码,因为我怀疑这是一个家庭作业问题,我不想用勺子将OP complete和working代码发送出去。

跟踪您向每个数组添加了多少元素。或者只需使用
std::vector
,它就可以为您执行此操作。这会阻止打印垃圾值吗?@sahilsika仔细想想。如果跟踪添加了多少元素,并且只打印了那么多元素,是否可以访问未初始化(垃圾)元素?每个数组的大小是10。@juanchopanza…那又怎样?你想说什么?“你可以像这样保存每个数组的大小:“你觉得怎么样?@juanchopanza哦,我觉得有一些不明确的地方;我编辑。
std::vector<int> b, c;

...

for (int i = 0; i < 10; i++)
{
    if (a[i] % 2 == 0)
        b.push_back(a[i]);
    else
        c.push_back(a[i]);
}