数组大小声明

时间:2014-09-09 05:01:14

标签: c++

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

2 个答案:

答案 0 :(得分:2)

实现此目的的最简单,最直接的方法是保持两个计数来跟踪您在bc数组中插入的项目数。请注意,无论如何都必须这样做才能知道插入下一个项目的位置。

例如,您可以声明b_countc_count变量并将其初始化为零。如果数字是偶数,则将数字写为b[b_count],然后将{1}添加到b_count,如果数字为奇数,则为cc_count添加相同内容。

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


我没有在这里写任何代码,因为我怀疑这是一个功课问题而且我不想把OP完整且正常工作的代码掏空。

答案 1 :(得分:0)

您可以保存每个数组的内容大小,如下所示:

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];
}

或者您可以使用std::vector。它是更多 C ++。

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]);
}