我需要編寫一個函數,它接受給定的數組,然後將它分成兩個單獨的數組,其中一個數組的元素是主數組的正元素,另一個元素是負數主陣列的元素。我似乎無法弄清楚這樣做的循環會是什麼樣子。將數組拆分爲單獨的正數組和負數組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