Помогите пожалуйста!! С++
Условие
Дан массив a из n элементов. Требуется найти максимум массива и удалить его из массива, порядок других элементов сохранить. Если максимальных элементов несколько, удалить первый найденный максимальный элемент массива.
Формат входных данных
С клавиатуры вводится натуральное число n
(n≤100 ) — размер массива. Во второй строке вводятся n
элементов массива через пробел. Все элементы не превосходят по модулю 100 .
Формат выходных данных
Необxодимо вывести измененный массив.
Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
#include <array>
#include <iostream>
using namespace std;
using value_t = int;
using array100_t = array<value_t, 100>;
void show(const array100_t& sequence, const size_t length) {
for (size_t i = 0; i < length; ++i) {
cout << sequence[i] << ' ';
}
cout.put('\n');
}
void erase(const size_t position, array100_t& sequence, size_t& length) {
for (size_t i = position, j = i + 1; j < length; ++i, ++j) {
sequence[i] = sequence[j];
}
if (length) --length;
}
void fill(array100_t& sequence, const size_t length) {
for (size_t i = 0; i < length; ++i) {
cin >> sequence[i];
}
}
size_t min_element_position(const array100_t& sequence, const size_t length) {
size_t position = 0;
for (size_t i = 1; i < length; ++i) {
if (sequence[i] < sequence[position]) {
position = i;
}
}
return position;
}
int main() {
size_t n;
cin >> n;
array100_t sequence{};
fill(sequence, n);
const auto position = min_element_position(sequence, n);
erase(position, sequence, n);
show(sequence, n);
}
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
#include <iostream>
#include <vector>
int main() {
int n;
std::cout << "Введите размер массива (n ≤ 100): ";
std::cin >> n;
// Проверка на корректность ввода
if (n <= 0 || n > 100) {
std::cerr << "Размер массива должен быть натуральным числом и не превышать 100." << std::endl;
return 1;
}
std::vector<int> a(n);
std::cout << "Введите элементы массива через пробел: ";
for (int i = 0; i < n; ++i) {
std::cin >> a[i];
}
// Поиск максимального элемента и его индекса
int maxIndex = 0;
for (int i = 1; i < n; ++i) {
if (a[i] > a[maxIndex]) {
maxIndex = i;
}
}
// Создание нового массива без максимального элемента
std::vector<int> result;
for (int i = 0; i < n; ++i) {
if (i != maxIndex) {
result.push_back(a[i]);
}
}
// Вывод измененного массива
std::cout << "Измененный массив: ";
for (int i = 0; i < result.size(); ++i) {
std::cout << result[i];
if (i < result.size() - 1) {
std::cout << " ";
}
}
std::cout << std::endl;
return 0;
}
Больше по теме