Напиши функцию вывода массива на печать, чтобы не дублировать код.
Добавь в нее параметр, (назовем его pos со значением по умолчанию -1) который будет обозначать начальную позицию элементов для выделения красным цветом;
Дальше в функции выводишь массив до этой позиции, выводишь свои a[pos] a[pos + 1] символы, потом оставшиеся.
Я бы все по-другому сделал, но
это твой кодvoid print(int* a, int size, int pos = -1)
{
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
int i = 0;
SetConsoleTextAttribute(hConsole, (WORD)((0 << 8) | 15));
for(; i < pos; ++i) cout << a[i] << " ";
if(pos != -1)
{
SetConsoleTextAttribute(hConsole, (WORD)((0 << 4) | 4));
cout << a[i] << " " << a[i + 1] << " ";
SetConsoleTextAttribute(hConsole, (WORD)((0 << 8) | 15));
i += 2;
}
for(; i < size; ++i) cout << a[i] << " ";
cout << endl;
}
void massiv(int* x, int n)//функция заполнения и изменения
{
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
for(int i = 0; i < n; i++)//заполнение массива
{
x[i] = rand() % 10;
}
print(x, n);
int id = 0; // id - первый элемент пары, дающей максимальную разность
for(int i = 0; i < n - 1; i++)
{
if(abs(x[i] - x[i + 1]) > abs(x[id] - x[id + 1]))
{
id = i;
}
}
SetConsoleTextAttribute(hConsole, (WORD)((0 << 4) | 4));
cout << abs(x[id + 1] - x[id]) << "\n";
print(x, n, id);
}
И это
int* x = new int[n]; //динамическая переменная выделение памяти
delete[] x; забыл, тут это не страшно, но это не правильно.