Написал код, создал динамический массив, по заданию нужно указать максимальную разность между двумя соседними элементами массива и выделить при выводе эти элементы красным цветом.
Я покрасил только максимальную разность например если у нас есть такие числа: 1 3 2 6 - максимальная разность будет 4. Как мне покрасить два числа где находится это разность, в данном случае 2 и 6 -их и нужно покрасить.
Вот код :
#include "stdafx.h"
#include
#include
#include
using namespace std;
void massiv(int* x, int n)//функция заполнения и изменения
{
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
for (int i = 0; i < n; i++)//заполнение массива
{
*(x+i) = rand() % 10;
cout << *(x+i) << " ";
}
SetConsoleTextAttribute(hConsole, (WORD)((7 << 4) | 4));
int id = 0; // id - первый элемент пары, дающей максимальную разность
for (int i = 1; i < n - 1; i++)
if (abs(x[i] - x[i + 1]) > abs(x[id] - x[id + 1]))
{
id = i;
}
cout << endl;
SetConsoleTextAttribute(hConsole, (WORD)((7 << 4) | 4));
cout << abs(x[id + 1] - x[id]);
}
int main()
{
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, (WORD)((7 << 4) | 0));
system("cls");
srand(time(NULL));
int n;
while (!(cin >> n)) //проверка на число
{
cin.clear();
while (cin.get() != '\n');
cout << "NEVERNII VVOD" << endl;
}
if (n <= 0 || n == 1)
{
cout << "Vvedite zanogo";
cin >> n;
}
int* x = new int[n]; //динамическая переменная, выделение памяти
massiv(x, n);//вызов функции
cout << "\n";
SetConsoleTextAttribute(hConsole, (WORD)((7 << 4) | 0));
cout << endl;
system("pause");
return 0;
};
Другие языки программирования и технологии
Здравствуйте нужна помощь при покраске двух значений. С++
#include <iostream>
#include <random>
#include <iomanip>
#include <Windows.h>
struct TextColor {
TextColor() = delete;
TextColor(const TextColor&) = delete;
void operator=(const TextColor&) = delete;
const enum {
Black,
Blue,
Green,
Cyan,
Red,
Magenta,
Brown,
LightGray,
DarkGray,
LightBlue,
LightGreen,
LightCyan,
LightRed,
LightMagenta,
Yellow,
White
};
};
using namespace std;
constexpr int left() {
return -99;
}
constexpr int right() {
return 99;
}
void fill(int* box, const size_t buffer) {
uniform_int_distribution uid(left(), right());
random_device rd;
mt19937 gen(rd());
for (auto i = 0U; i < buffer; ++i) box[i] = uid(gen);
}
int mx(int* box, const size_t buffer) {
auto m = left();
for (auto i = 0U; i < buffer; ++i) if (box[i] > m) m = box[i];
return m;
}
int mn(int* box, const size_t buffer) {
auto m = right();
for (auto i = 0U; i < buffer; ++i) if (box[i] < m) m = box[i];
return m;
}
int difference(int* box, const size_t buffer) {
return mx(box, buffer) - mn(box, buffer);
}
void show(int* box, const size_t buffer) {
auto l = mn(box, buffer);
auto r = mx(box, buffer);
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
for (auto i = 0U; i < buffer; ++i) {
if (box[i] == l || box[i] == r)
SetConsoleTextAttribute(hConsole, TextColor::LightCyan);
cout << setw(4) << box[i];
if (box[i] == l || box[i] == r)
SetConsoleTextAttribute(hConsole, TextColor::LightGray);
}
cout.put('\n');
}
int main() {
cout << " size: ";
size_t buffer;
cin >> buffer;
int* box = new int[buffer];
fill(box, buffer);
show(box, buffer);
cout << " difference: " << difference(box, buffer) << '\n';
delete[] box;
system("pause");
}
#include <random>
#include <iomanip>
#include <Windows.h>
struct TextColor {
TextColor() = delete;
TextColor(const TextColor&) = delete;
void operator=(const TextColor&) = delete;
const enum {
Black,
Blue,
Green,
Cyan,
Red,
Magenta,
Brown,
LightGray,
DarkGray,
LightBlue,
LightGreen,
LightCyan,
LightRed,
LightMagenta,
Yellow,
White
};
};
using namespace std;
constexpr int left() {
return -99;
}
constexpr int right() {
return 99;
}
void fill(int* box, const size_t buffer) {
uniform_int_distribution uid(left(), right());
random_device rd;
mt19937 gen(rd());
for (auto i = 0U; i < buffer; ++i) box[i] = uid(gen);
}
int mx(int* box, const size_t buffer) {
auto m = left();
for (auto i = 0U; i < buffer; ++i) if (box[i] > m) m = box[i];
return m;
}
int mn(int* box, const size_t buffer) {
auto m = right();
for (auto i = 0U; i < buffer; ++i) if (box[i] < m) m = box[i];
return m;
}
int difference(int* box, const size_t buffer) {
return mx(box, buffer) - mn(box, buffer);
}
void show(int* box, const size_t buffer) {
auto l = mn(box, buffer);
auto r = mx(box, buffer);
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
for (auto i = 0U; i < buffer; ++i) {
if (box[i] == l || box[i] == r)
SetConsoleTextAttribute(hConsole, TextColor::LightCyan);
cout << setw(4) << box[i];
if (box[i] == l || box[i] == r)
SetConsoleTextAttribute(hConsole, TextColor::LightGray);
}
cout.put('\n');
}
int main() {
cout << " size: ";
size_t buffer;
cin >> buffer;
int* box = new int[buffer];
fill(box, buffer);
show(box, buffer);
cout << " difference: " << difference(box, buffer) << '\n';
delete[] box;
system("pause");
}
Похожие вопросы
- Здравствуйте, нужна помощь в создании игр. Крик души.
- Здравствуйте нужна помощь по программе на языке паскаль
- Здравствуйте! Мне нужная помощь по HTML, конкретнее по `ах.
- Здравствуйте! Срочно нужна помощь! Удалила папку с фотографиями, и с корзины тоже. Можно ли как нибудь восстановить?
- Здравствуйте! Нужны ключи для Windows XP Professional 2002 и помощь в установке!
- Здравствуйте великие компьютерные гении,нужна помощь
- Здравствуйте =) Очень нужна помощь. Нужно написать программку на c++.
- Нужна помощь по информатике.
- Нужна помощь с паскалем!
- Программисты,нужна помощь,пожалуйста Для вас легко