Форум программистов, компьютерный форум CyberForum.ru

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

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

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

09.12.2013, 21:52. Просмотров 751. Ответов 1
Метки нет (Все метки)

Задача такая :
Удалить из массива, в котором все элементы различны :
а) максимальный элемент;
б) минимальный элемент.

Помогите пожалуйста с задачей, сидел оочень долго, смог просто сделать вывод максимального и минимального элемента, а как их удалить, я не понимаю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2013, 21:52     Удалить из массива максимальный и минимальный элемент
Посмотрите здесь:
C++ Определить, что больше: максимальный элемент массива А[10] или минимальный элемент массива В[7]
Поменять местами минимальный элемент с первым элементом массива, а максимальный элемент с последним C++
Удалить минимальный и максимальный элементы массива C++
Удалить минимальный и максимальный элементы массива C++
C++ Удалить минимальный и максимальный элементы массива
Удалить минимальный и максимальный элементы массива C++
Удалить минимальный и максимальный элементы массива C++
C++ Максимальный и минимальный элемент массива
Минимальный и максимальный элемент массива. C++
visual c++. Удалить минимальный и максимальный элементы массива. C++
C++ Максимальный и минимальный элемент одномерного массива
Найти максимальный и минимальный элемент массива C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jack Wade
63 / 36 / 6
Регистрация: 24.02.2013
Сообщений: 250
09.12.2013, 22:19     Удалить из массива максимальный и минимальный элемент #2
В массиве удалить элемент-невозможно. Можно просто тупо его скрыть от просмотра.
В краце-код будет примерно следующий:
Кликните здесь для просмотра всего текста

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
#include <cstdio>//stdio.h
 
int mas[100];
int kol=0;
int max=0;
int _n_max=0;
int min=0;
int _n_min=0;
 
int main(void)
{
scanf("%d", &kol);
for (int i=0; i<kol; i++)
scanf("%d", &mas[i]);
max=mas[0];
min=mas[0];
for (int i=0; i<kol; i++)
{
if (mas[i]>max) { max=mas[i]; _n_max=i; }
if (mas[i]<min) { min=mas[i]; _n_min=i; }
}
//А теперь удаляем
for (int i=_n_max; i<kol-1; i++)
mas[i]=mas[i+1];
kol--;
for (int i=_n_min; i<kol-1; i++)
mas[i]=mas[i+1];
kol--;
for (int i=0; i<kol; i++) printf("%d\n", mas[i]);
_gettch();
return 0;
}

Ну, как то так...
Суть такова:
Я находил сразу и макс. число и минимальное, а так же, сразу искал и номер в массиве этих чисел. И сразу объявлял цикл от этих номеров до размерности массива-1(т.к. удаляем 1 элемент). После чего, в цикле было mas[i]=mas[i+1](т.е. этот элемент равен следующему). И так и для макс. числа, и для мин. числа.
Просто, почему я ещё использовал 2 переменные для хранения номера элемента? Просто, дабы не использовать ещё один цикл, в котором буду сравнивать все числа со всем массивом, а сразу "удалить" уже найденный элемент.
По сути-всё.
Yandex
Объявления
09.12.2013, 22:19     Удалить из массива максимальный и минимальный элемент
Ответ Создать тему
Опции темы

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