Написал код, создал динамический массив , по заданию нужно указать максимальную разность между двумя соседними элементами массива и выделить при выводе эти элементы красным цветом.
Я покрасил только максимальную разность например если у нас есть такие числа: 1 3 2 6 - максимальная разность будет 4. Как мне покрасить два числа где находится это разность, в данном случае 2 и 6 -их и нужно покрасить.
Вот код :
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <ctime>
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;
};
Я как понял основная проблема это в алгоритме. Подкрашивать цифры я не умею ;_;
НО я могу предоставить логарифм :3 ВОТ :
int main()
{
int massiw[] = {2,4,5,6,8,2,6,8,9,7,3,1};
// вот алгоритм поиска двух ближайших чисел которые привели к самой большой разнице
int datchik_t1 = 0; int bigg_chislo = 0;// самая большая разница
int chislo_1 = 0; // первое число давшее самую большую разницу
int chislo_2 = 0; // второе число давшее самую большую разницу
for(int i=0;i<(sizeof(massiw)/sizeof(int));i++){
printf(" : %d \n", i);
datchik_t1 = massiw[i]-massiw[i+1];
if(datchik_t1<0) // меняем знак на противоположный
datchik_t1 = datchik_t1*(-1);
if(datchik_t1>bigg_chislo){
bigg_chislo = datchik_t1;
chislo_1 =i; chislo_2 = i+1;
}
}
printf(" самое большое число : %d \n", bigg_chislo);
printf(" два числа \"преведших\" к большому числу : первое число - %d второе число - %d \n", massiw [chislo_1], massiw [chislo_2]);
printf(" места в массиве занимают : %d и %d \n", chislo_1+1, chislo_2+1); // плюс один чтоб перевести в "человеческие нормы" комп счититает с нуля
return 0;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У нас есть какая-то запущенная оконная программаМне нужно получать кадры изображения этого окна, как только они обновляются
Помогите пожалуйста как сделать слайдер который имеет отступ с одной стороны, при прокрутке первого элемента слайдер уходит на ширину экрана?...
У меня есть форма, в ней одна кнопка отправки и две и несколько полей requiredПроблема в чем: две кнопки не работают, пока не будут заполнены...
Добавил автокомплит для поля select, значение v-model="selected" отображается, при загрузке страницы, но в дропдауне нету значений из itemList, как исправить...