我需要编写一个函数,它接受给定的数组,然后将它分成两个单独的数组,其中一个数组的元素是主数组的正元素,另一个元素是负数主阵列的元素。我似乎无法弄清楚这样做的循环会是什么样子。将数组拆分为单独的正数组和负数组C++
我已经写一个单独的函数来确定的正值和负值多少是该主阵列中:
void count(int ARRAY[], int SIZE, int&NEG, int&POS)
{
for (int x=0; x<SIZE; x++)
{
if(ARRAY[x]>=0)
{
POS=POS+1 ;
}
if(ARRAY[x]<0)
{
NEG=NEG+1 ;
}
}
}
此计数肯定和否定,并且每个的数目将是相应的正的大小和拆分后的负数组。
我所定义的功能,例如:
void split(int ARRAY[], int SIZE, int&NEG_ARRAY, int NEG, int&POS_ARRAY, int POS)
我只是不知道如何为新的仅正阵列中且同样设置元素的每一个积极的因素主要阵列负数组。
感谢您的帮助!
在使用给出的答案并对代码的其余部分做了最好的尝试后,我在编译时遇到了大约一百万行错误。我如何删除三个动态分配的数组有问题吗?什么巨大的错误是防止编译? 这是我的代码:
#include <iostream>
using namespace std;
void count(int ARRAY[], int SIZE, int&NEG, int&POS);
void split(int ARRAY[], int SIZE, int&NEG_ARRAY, int NEG, int&POS_ARRAY, int POS);
void print_array(int ARRAY[], int SIZE);
int main()
{
int SIZE (0);
int * ARRAY ;
cout<<"Enter number of elements: " ;
cin>> SIZE ;
ARRAY = new int[SIZE] ;
int x(0);
int numEle(0);
cout<<"Enter list: " <<endl;
while(numEle<SIZE)
{
ARRAY[numEle] = x ;
numEle++;
cin>>x;
}
int POS(0), NEG(0) ;
count(ARRAY, SIZE, NEG, POS) ;
int * NEG_ARRAY;
NEG_ARRAY = new int[NEG];
int * POS_ARRAY;
POS_ARRAY = new int[POS];
split(ARRAY, SIZE, NEG_ARRAY, NEG, POS_ARRAY, POS) ;
cout<<"Negative elements: "<<endl;
cout<<print_array(NEG_ARRAY, NEG) <<endl;
cout<<"Non-negative elements: "<<endl;
cout<<print_array(POS_ARRAY, POS)<<endl;
delete[] ARRAY;
delete[] NEG_ARRAY;
delete[] POS_ARRAY;
return 0;
}
void count(int ARRAY[], int SIZE, int&NEG, int&POS)
{
for (int x=0; x<SIZE; x++)
{
if(ARRAY[x]>=0)
{
POS=POS+1 ;
}
if(ARRAY[x]<0)
{
NEG=NEG+1 ;
}
}
}
void split(int ARRAY[], int SIZE, int&NEG_ARRAY, int NEG, int&POS_ARRAY, int POS)
{
NEG=POS=0;
for(int x=0; x<SIZE; x++)
{
if(ARRAY[x]<0)
{ NEG_ARRAY[NEG++]=ARRAY[x]; }
else {POS_ARRAY[POS++]=ARRAY[x]; }
}
}
void print_array(int ARRAY[], int SIZE)
{
for(int i=0; i<SIZE; i++)
{
cout << ARRAY[i] << " " ;
}
cout<<endl;
}
代码假定该阵列中读取并显示的新的负和正的阵列。提前致谢!
怎么样的零?他们应该陷入什么困境?有没有理由使用原始数组而不是像'std :: vector'这样的更高级别的构造?为什么输入数组是'int ARRAY []',但是负数和正数'int&'? –
预设是否存在“正”和“负”数组,或者该函数是否必须为它们分配空间? – Beta
我发布了我的整个代码。它不会编译,并给我一个荒谬的错误数量。 – user2840960