Другие языки программирования и технологии

помогите решить задачу в с++ пожалуйста (( )): с генерировать одномерный массив.

Размерность задается пользователем значения в диапазоне от [0;100]. все значения делящиеся на 3, заменить на 0. а те которые делятся на 2 выделить другим цветом.
#include <iostream>
#include <iomanip>
#include <ctime>
#include <windows.h>
using namespace std;
enum colors { LIGHTGREEN = 10, WHITE = 15 };
bool random_array(int *, const size_t, const int _left = 0, int _rigth = 100);
void show_array(int *, size_t);
void colortext(const WORD);
bool multiply(const int, const int);
int main() {
    wcout.imbue(locale("rus_rus.866"));
    srand(unsigned(time(NULL)));
    wcout << L"\n Введите размер массива: ";
    size_t size;
    cin >> size;
    int * arr = new int [size];
    if (random_array(arr, size)) {
        wcout << L"Исходный массив: \n";
        show_array(arr, size);
        int multiple = 3, replacement = 0;
        for (size_t n = 0; n < size; n++) if (multiply(arr[n], multiple)) arr[n] = replacement;
        multiple = 2;
        streamsize w = 4;
        wcout << L"Изменённый массив: \n";
        for (size_t n = 0; n < size; n++) {
            if (multiply(arr[n], multiple)) colortext(LIGHTGREEN);
            else colortext(WHITE);
            cout << setw(w) << arr[n];
        }
    } else wcout << L"\nОшибка! \a\n";
    delete[] arr;
    cin.get(); cin.get();
    return 0;
}
void colortext(const WORD _color) {
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hStdOut, _color);
}
bool multiply(const int _number, const int _multiple) {
    if (!_number || _number % _multiple) return false;
    return true;
}
inline bool random_array(int * _array, const size_t _size, const int _left, int _rigth) {
    if (_left >= _rigth) return false;
    if (_left < 0 && _rigth >= 0) _rigth += abs(_left);
    else if (_left < 0 && _rigth < 0) _rigth = abs(_left) - abs(_rigth);
    else if (_left >= 0 && _rigth > 0) _rigth -= _left;
    for (size_t n = 0; n < _size; n++) _array[n] = rand() % _rigth + _left;
    return true;
}
void show_array(int * _array, size_t _size) {
    streamsize w = 4;
    for (size_t n = 0; n < _size; n++) cout << setw(w) << _array[n];
    cout << endl;
}
Виктор Мухин
Виктор Мухин
82 496
Лучший ответ
Консоль или как их вообще выделить?
Дмитрий Роднин
Дмитрий Роднин
34 701