Домашнее задание C++: цветной массив
Заполнить массив целых чисел 100 случайными числами в диапазоне -99...99, вывести его на экран
в виде таблицы по 10 чисел в строке, выделяя минимальный элемент зеленым цветом (10), а максимальный
элементы красным цветом (12). Напишите дополнительные функции, чтобы также выделить:
A: все нули синим цветом (9)
B: числа, наиболее близкие к среднему арифметическому массива, фиолетовым цветом (13)
C: числа, наиболее часто встречающиеся в массиве, желтым цветом (14)

в закрепе пример выполнения задачи

Приложения:

Ответы

Ответ дал: mixail0809
0

#include <iostream>

#include <cstdlib>

#include <ctime>

#include <algorithm>

using namespace std;

const int ARRAY_SIZE = 100;

const int RANGE_MIN = -99;

const int RANGE_MAX = 99;

void printArray(int arr[], int size)

{

for (int i = 0; i < size; i++)

{

if (i % 10 == 0)

cout << endl;

if (arr[i] == *min_element(arr, arr+size))

cout << "\033[32m" << arr[i] << "\033[0m ";

else if (arr[i] == *max_element(arr, arr+size))

cout << "\033[31m" << arr[i] << "\033[0m ";

else if (arr[i] == 0)

cout << "\033[34m" << arr[i] << "\033[0m ";

else if (arr[i] == *min_element(arr, arr+size, [&](int a, int b){ return abs(a - (accumulate(arr, arr+size, 0) / size)) < abs(b - (accumulate(arr, arr+size, 0) / size)); }))

cout << "\033[35m" << arr[i] << "\033[0m ";

else if (arr[i] == *max_element(arr, arr+size, [&](int a, int b){ return count(arr, arr+size, a) < count(arr, arr+size, b); }))

cout << "\033[33m" << arr[i] << "\033[0m ";

else

cout << arr[i] << " ";

}

cout << endl;

}

int main()

{

srand(time(0));

int arr[ARRAY_SIZE];

for (int i = 0; i < ARRAY_SIZE; i++)

{

arr[i] = rand() % (RANGE_MAX - RANGE_MIN + 1) + RANGE_MIN;

}

printArray(arr, ARRAY_SIZE);

return 0;

}


dlqvis: Можете пожалуйста объяснить каждый этап программы ?
Вас заинтересует