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