Даны натуральное число n и целые числа (m1...mn) . После каждого четного члена последовательности с нечетным номером, предшествующим первому по порядку члену со значением max(m1...mn) , вставить значение max(m1...mn).
#include <iostream>
#include <cstdlib>
using namespace std;
#define n 30
int main(){
int mas[n];
int max = -9999;
int pos = 0;
cout<<"In: ";
for(int i = 0; i < n; i++){
mas[i] = rand()%105 - 5;
cout<<mas[i]<<" ";
if(max < mas[i]){
max = mas[i];
pos = i;
}
}
cout<<endl<<"Max = "<<max<<endl<<"Out ";
for(int i = 0; i < n; i++){
cout<<mas[i]<<" ";
if(i < pos){
if((i % 2 != 0) && (mas[i] % 2 == 0))
cout<<max<<" ";
}
}
return 0;
}
for(int i = 0; i < n; i++)
int max = -9999
- изначальная инициализация переменной (с надеждой что это самое максимально минимальное значение)mas[i] = rand()%105 - 5;
- присвоение рандомного значения ячейке с индексомi в массиве mascout<<mas[i]<<" ";
- вывод значения ячейки i из массива mas в консольif(max < mas[i]){
max = mas[i];
pos = i;
}
cout<<mas[i]<<" ";
- вывод значения i ячейки массива mas.if(i < pos){}
- если i меньше индекса позиции максимального элементаif((i % 2 != 0) && (mas[i] % 2 == 0))
cout<<max<<" ";
}
- если текущий индекс i нечетный (i % 2 != 0
) И (&&
) элемент массива mas с индексом i имеет четное значение (mas[i] % 2 == 0
) , то вывести в консоль максимальное значение ( cout<<max<<" ";
) mas[i] = rand()%105 - 5; // записываем в ячейку массива случайное число диапазоне от 0 до 99
cout<<mas[i]<<" "; // выводим это число на консоль
if(max < mas[i]){ // ищем максимальное значение (max) и его индекс (pos)
max = mas[i];
pos = i;
}
cout<<mas[i]<<" "; // выводим значение текущей ячейки
if(i < pos){ // для всех элементов, предшествующих максимальному
if((i % 2 != 0) && (mas[i] % 2 == 0)) // если номер нечетный и значение чётное
cout<<max<<" "; // выводим значение максимального элемента
}
почему int max = -9999Чтобы до прохода по циклу значение текущего максимума (с которым сравнивают числа) было гарантированно меньше любого числа. Тоже говнокод, в таких случаях лучше использовать INT_MIN.