题目:
试着编写一个函数,将一个有n个非零元素的整数一维数组A[n]拆分为两个一维数组,使得A[]中大于零的元素存放在B[]中,小于零的元素存放在C[]中。
Array.h
#pragma once #include<iostream> using namespace std; class Array { int* data; int num; //num<=>lenth int maxSize; public: Array(int size) { maxSize = size; data = new int[maxSize]; num = 0; } void creat(int* arr,int n) { for (int i = 0; i < n; i++) { data[i] = arr[i]; num++; } } void show() { for (int i = 0; i < num; i++) { cout << data[i] << " "; } cout << endl; } void divide(Array& B, Array& C) { B.num = 0; C.num = 0; for (int i = 0; i < num; i++) { if (data[i] > 0) { B.data[B.num++] = data[i]; } else if (data[i] < 0) { C.data[C.num++] = data[i]; } } } };
main.cpp
#include"Array.h" int main() { Array A(9); Array B(9); Array C(9); int arr[] = { -1,-8,6,4,-7,-3 }; A.creat(arr, 6); A.show(); A.divide(B, C); B.show(); C.show(); return 0; }