Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Neiten
0 / 0 / 0
Регистрация: 23.10.2016
Сообщений: 177
#1

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

29.03.2017, 11:47. Просмотров 168. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти минимальный и максимальный элементы массива (C++):

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

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

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

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

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

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

7
MrGluck
Модератор
Эксперт CЭксперт С++
7800 / 4844 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
29.03.2017, 13:29 #2
Из того, что может привести к ошибке компиляции - не указан заголовочный файл cstdlib, в котором определена функция system.
Остальные замечания скорее по код стайлу.
Например, лучше было бы использовать динамический массив (если не указано что код должен работать только с массивами до 100 элементов и нам критически важна скорость).
Результат вычислений функций min_odd и max_even лучше записать в какие-нибудь переменные, а не вызывать функции повторно.
Нет смысла передавать размер массива по ссылке.
Если массив оставить статическим, то лучше добавить к параметру тип const. Содержимое ведь не меняется.
Инструкцию, выполняющуюся в ветке if лучше переносить на новую строку и добавлять отступ.
Всё можно выполнить за один проход (даже без записи в массив).
1
Nemovok
237 / 84 / 34
Регистрация: 30.10.2015
Сообщений: 521
Завершенные тесты: 1
29.03.2017, 14:00 #3
Цитата Сообщение от Neiten Посмотреть сообщение
std::cout << "Введите кол-во элементов массива (n >= 2 || n <= 100): ";
n >= 2 && n <= 100
1
Ferrari F1
623 / 521 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
29.03.2017, 14:02 #4
Цитата Сообщение от Neiten Посмотреть сообщение
Найти минимальный и максимальный элементы массива
std::minmax_element
1
New man
154 / 92 / 23
Регистрация: 23.05.2011
Сообщений: 548
Завершенные тесты: 2
29.03.2017, 14:21 #5
Ой, увидел, что всё норм.
1
MrGluck
Модератор
Эксперт CЭксперт С++
7800 / 4844 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
29.03.2017, 14:22 #6
Цитата Сообщение от New man Посмотреть сообщение
Как я понимаю
Посмотрите чем инициализируется переменная min/max. Тут то как раз всё ок.
1
New man
154 / 92 / 23
Регистрация: 23.05.2011
Сообщений: 548
Завершенные тесты: 2
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
Привет! Вот еще темы с ответами:

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

Найти максимальный и минимальный элементы массива S(n) и поменять их местами - C++
написать на С++) и + блок-схемы(время неи денег нет а проги надо написать помогите кно нить) 1. Найти максимальный и минимальный...

Найти максимальный и минимальный элементы массива до и после удаления - C++
Удалить из массива последнюю группу элементов, представляющих собой знакочередующийся ряд. Найти максимальный и минимальный элементы...

Найти минимальный и максимальный элементы массива и их порядковые номера - C++
Помогите)


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

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

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