oddsevensptrs.cpp

来自「C++高级编程这本书所附的源代码」· C++ 代码 · 共 53 行

CPP
53
字号
#include <iostream>using namespace std;void printIntArr(const int arr[], int size){  for (int i = 0; i < size; i++) {    cout << arr[i] << " ";  }  cout << endl;} void separateOddsAndEvens(const int arr[], int size, int** odds, int* numOdds,		  int** evens, int* numEvens){  int i;  // Count the number of odds and evens  *numOdds = *numEvens = 0;  for (i = 0; i < size; i++) {    if (arr[i] % 2 == 1) {      (*numOdds)++;    } else {      (*numEvens)++;    }  }  // Allocate two new arrays of the appropriate size  *odds = new int[*numOdds];  *evens = new int[*numEvens];  // Copy the odds and evens to the new arrays  int oddsPos = 0, evensPos = 0;  for (i = 0; i < size; i++) {    if (arr[i] % 2 == 1) {      (*odds)[oddsPos++] = arr[i];    } else {      (*evens)[evensPos++] = arr[i];    }  }}  int main(int argc, char** argv){  int unSplit[10] = {1, 2, 3, 4, 5, 6, 6, 8, 9, 10};  int *oddNums, *evenNums;  int numOdds, numEvens;  separateOddsAndEvens(unSplit, 10, &oddNums, &numOdds, &evenNums, &numEvens);  printIntArr(oddNums, numOdds);  printIntArr(evenNums, numEvens);  return (0);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?