من تابعی را به صورت زیر نوشتم. این تابع بک آرایه می گیره و سپس اعداد زوج و فرد را در آرایه هایی جدا به همراه مقدارشون بر می گردونه .آیا راه ساده تری وجود داره که کد را به صورت ** ننویسیم؟
void sepOddsEvens(const int arr[], int size, int** odds,int* num_odds, int** evens, int* num_evens)
{
*num_odds = *num_evens = 0;
for (int i = 0; i < size; i++) {
if (arr[i] % 2 == 1) {
(*num_odds)++;
}
else {
(*num_evens)++;
}
}
*odds = new int[*num_odds];
*evens = new int[*num_evens];
int odds_pos = 0, evens_pos = 0;
for (int i = 0; i < size; i++) {
if (arr[i] % 2 == 1) {
(*odds)[odds_pos++] = arr[i];
}
else {
(*evens)[evens_pos++] = arr[i];
}
}
}