#2
武汉Boy2018-02-09 20:12
#include"iostream"
using namespace std; class Marray { public: Marray(int n) { if (n < 0) { cout << "输入数组下标不合法" << endl; return; } Len = n; pArray = new int[n]{0}; if (pArray == NULL) { return; } for (int i = 0; i < n; i++) { pArray[i] = i;//完成0~n的赋值 } } public: void Test() { int *tem = new int[Len]{0}; int j = 0; if (tem == NULL) { return; } for (int i = 0; i < Len; i++) { if (pArray[i] % 2 != 0)//奇数 { tem[j] = pArray[i]; j++; } } for (int i = 0; i < Len; i++)//偶数 { if (pArray[i] % 2 == 0) { tem[j] = pArray[i]; ++j; } } for (int i = 0; i < Len; i++) { pArray[i] = tem[i]; } print(); delete[] tem; } protected: void print() { for (int i = 0; i < Len; i++) { cout << pArray[i] << " "; } cout << endl; } public: ~Marray() { delete[] pArray; } private: int Len;//数组容量 int *pArray; }; int main() { Marray array(100); array.Test(); return 0; } 很久没做这种题目了,暴力一些 |
输入n个数(n<=100),对这n个数进行奇偶识别,使得所有偶数放在数组的左端,所有奇数放在数组的右端(不要求奇数、偶数有序)。要求:编写子函数,完成上述功能,n的值及n个数均在主函数中输入,并在主函数中输出处理结果。
解题思路:
1、新建两个数组分别放原数组中的奇数和偶数。
2、将奇数数组中的数复制给原数组
3、将偶数数组中的数复制到原数组奇数的后边