该程序应该读取元素的数量和列表,并将数组拆分为偶数和奇数,并显示原始数组中零的数量。我之前针对该程序遇到的第一个问题发布了一个问题,并且答案非常有帮助,因为这是一项作业。但是现在我遇到了另一个问题,那就是每次我运行它给我的程序时0 'z.
,它直到我关闭窗口才会停止。我认为问题出在计数功能上,但我无法自己诊断问题。我补充说:
cout<< odd_num<< " " << even_num;
在我调用 count 函数找出问题所在之后,它给了我一个非常大的数字,所以无论错误是什么,它都来自这个函数。
所以请帮助我!我敢肯定,对于你们大多数人来说,这是非常基础的,但我刚刚开始学习这一点,如果你能帮助我,我真的很感激。
编辑:我编辑了这段代码,唯一的问题是一个额外的零作为输出;看看最后的示例输出。
这是代码:
int count(const int list[], int size, int & odd , int & even)
{
int zero(0);
for (int i(0); i<size ; i++)
{
if (list[i] == 0)
{
zero++;
}
if (list[i]% 2 ==0 & list[i]!=0)
{
even++;
}
else if (list[i]% 2 ==1 & list[i]!=0)
{
odd++;
}
}
return zero;
}
void split(const int list[], int size, int list_even[], int even_num, int list_odd[], int odd_num )
{
int j(0);
int k(0);
for (int i(0); i<size; i++)
{
if(list[i]%2 == 0)
{
list_even[j]= list[i];
j++;
}
else if(list[i]%2 != 0)
{
list_odd[k]= list[i];
k++;
}
}
if (j != even_num || k != odd_num)
{
cerr << "Error.";
}
}
// function to print an array
void print_list(int array[], int length)
{
for (int a=0; a<length; a++)
{
cout <<array[a]<<" ";
}
}
这是示例答案:
Enter number of elements: 3
Enter list:
2
30
0
Error.Even elements:
2 30 0 0
Odd elements:
There were 1 zeros in the list
另一个示例是:
Enter number of elements: 3
Enter list:
2
1
5
Error.Even elements:
2 2752708
Odd elements:
1 5 2762032 2752708
There were 0 zeros in the list