Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Neiten
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 177
1

Найти минимальный и максимальный элементы массива

29.03.2017, 11:47. Просмотров 210. Ответов 7
Метки нет (Все метки)

Прошу проверить код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
 
// Вводит массив с клавиатуры
void read_arr(int arr[], const int& n)
{
    for (int i = 0; i < n; ++i)
        std::cin >> arr[i];
}
 
// Находим минимальное значение среди элементов на нечетных позициях
int min_odd(int arr[], const int& n)
{
    int min = arr[1];
    for (int i = 3; i < n; i += 2)
        if (arr[i] < min) min = arr[i];
    return min;
}
 
// Находим максимальное значение среди элементов на четных позициях
int max_even(int arr[], const int& n)
{
    int max = arr[0];
    for (int i = 2; i < n; i += 2)
        if (arr[i] > max) max = arr[i];
    return max;
}
 
int main()
{
    setlocale(0, "Russian");
 
    int arr[100];
    int n;
 
    std::cout << "Введите кол-во элементов массива (n >= 2 || n <= 100): ";
    std::cin >> n;
    if (n >= 2 || n <= 100)
    {
        read_arr(arr, n);
        std::cout << "Минимальное значение на четных позициях:    " << min_odd(arr, n) << std::endl;
        std::cout << "Максимальное значение на нечетных позициях: " << max_even(arr, n) << std::endl;
        std::cout << "Сумма: " << min_odd(arr, n) + max_even(arr, n) << std::endl;
    }
    else
        std::cout << "Ошибка: n выходит за пределы допустимого диапазона.\n";
 
    system("pause");
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2017, 11:47
Ответы с готовыми решениями:

Найти максимальный и минимальный элементы массива
Найти максимальный и минимальный элементы массива. Помогите, пожалуйста

Найти максимальный и минимальный элементы массива
Дан одномерный массив. Значения элементов генерируются случайным образом. Найти...

Найти максимальный и минимальный элементы массива
Ввести целочисленный двумерный массив АNxM , вывести его. Найти максимальный и...

Найти минимальный и максимальный элементы массива и упорядочить элементы по убыванию, стоящие между ними, методом «пузырька».
Привет ВСЕМ!!! Обратите вниминие на эту задачку, ПЛЗ!!! =) Можно и без метода &quot;...

Массив А(50). Найти минимальный и максимальный элементы массива.
Здравствуйте. Помогите решить. Заранее спасибо. Дан массив А(50). Найти...

7
MrGluck
Модератор
Эксперт CЭксперт С++
8105 / 4957 / 1436
Регистрация: 29.11.2010
Сообщений: 13,451
29.03.2017, 13:29 2
Из того, что может привести к ошибке компиляции - не указан заголовочный файл cstdlib, в котором определена функция system.
Остальные замечания скорее по код стайлу.
Например, лучше было бы использовать динамический массив (если не указано что код должен работать только с массивами до 100 элементов и нам критически важна скорость).
Результат вычислений функций min_odd и max_even лучше записать в какие-нибудь переменные, а не вызывать функции повторно.
Нет смысла передавать размер массива по ссылке.
Если массив оставить статическим, то лучше добавить к параметру тип const. Содержимое ведь не меняется.
Инструкцию, выполняющуюся в ветке if лучше переносить на новую строку и добавлять отступ.
Всё можно выполнить за один проход (даже без записи в массив).
1
Nemovok
293 / 122 / 106
Регистрация: 30.10.2015
Сообщений: 689
Завершенные тесты: 2
29.03.2017, 14:00 3
Цитата Сообщение от Neiten Посмотреть сообщение
std::cout << "Введите кол-во элементов массива (n >= 2 || n <= 100): ";
n >= 2 && n <= 100
1
Ferrari F1
793 / 522 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
29.03.2017, 14:02 4
Цитата Сообщение от Neiten Посмотреть сообщение
Найти минимальный и максимальный элементы массива
std::minmax_element
1
New man
240 / 162 / 63
Регистрация: 23.05.2011
Сообщений: 821
Завершенные тесты: 4
29.03.2017, 14:21 5
Ой, увидел, что всё норм.
1
MrGluck
Модератор
Эксперт CЭксперт С++
8105 / 4957 / 1436
Регистрация: 29.11.2010
Сообщений: 13,451
29.03.2017, 14:22 6
Цитата Сообщение от New man Посмотреть сообщение
Как я понимаю
Посмотрите чем инициализируется переменная min/max. Тут то как раз всё ок.
1
New man
240 / 162 / 63
Регистрация: 23.05.2011
Сообщений: 821
Завершенные тесты: 4
29.03.2017, 14:27 7
Цитата Сообщение от Neiten Посмотреть сообщение
const int& n
Передавать int через константную ссылку нет необходимости.

Добавлено через 3 минуты
C++
1
2
3
        std::cout << "Минимальное значение на четных позициях:    " << min_odd(arr, n) << std::endl;
        std::cout << "Максимальное значение на нечетных позициях: " << max_even(arr, n) << std::endl;
        std::cout << "Сумма: " << min_odd(arr, n) + max_even(arr, n) << std::endl;
Ещё немного напрягло то, что вызываете поиск элементов по два раза, когда можно значение сохранить.

C++
1
2
3
4
5
        int minimum = min_odd(arr, n) ;
        int maximum = max_even(arr, n);
        std::cout << "Минимальное значение на четных позициях:    " << minimum << std::endl;
        std::cout << "Максимальное значение на нечетных позициях: " << maximum << std::endl;
        std::cout << "Сумма: " << minimum + maximum << std::endl;
1
Neiten
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 177
03.04.2017, 03:27  [ТС] 8
в общем в место system я написал return 0;,
Все нормально все вышло сумма равна 2, но
компилятор выводит сообщение неправильный формат ввода 1, что это может быть?

Добавлено через 10 секунд
ПРИ ТЕСТЕ ИМЕЯ ВВИДУ.

Добавлено через 1 минуту
MrGluck А как бы вы написали код?
0
03.04.2017, 03:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2017, 03:27

Найти максимальный и минимальный элементы одномерного массива
Написать программу(С++) с использованием операций управления памятью для...

Найти максимальный и минимальный элементы массива и их сумму.
Дан массив х(10).найти максимальный и минимальный элементы массива и их сумму.

Массив. Найти максимальный и минимальный по модулю элементы массива
Ввести одномерный массив А , вывести его. Найти максимальный и минимальный по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru