Top.Mail.Ru
Ответы

Помогите пожалуйста!! С++

Условие
Дан массив a из n элементов. Требуется найти максимум массива и удалить его из массива, порядок других элементов сохранить. Если максимальных элементов несколько, удалить первый найденный максимальный элемент массива.

Формат входных данных
С клавиатуры вводится натуральное число n
(n≤100 ) — размер массива. Во второй строке вводятся n
элементов массива через пробел. Все элементы не превосходят по модулю 100 .

Формат выходных данных
Необxодимо вывести измененный массив.

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
6мес
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); 
} 
Аватар пользователя
Просветленный
6мес
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; 
}