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

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

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

Отсортировать массив с хаотическим индексом - C++

14.02.2013, 21:21. Просмотров 341. Ответов 5
Метки нет (Все метки)

К примеру у нас есть массив из 5 элементов[элемент][индекс]:
1) [43][103]
2) [5][2]
3) [67][54]
4) [55][27]
5) [38][98]
Можно вводить с клавиатуры или задавать рандомом и массив и индекс. Отсортировать этот массив.
Я что-то не понимаю как задать рандомный индекс.
К примеру что-то вроде:
C++
1
2
3
4
5
6
7
8
int j=0;
While(j<10)
{
    cin>>i;
    cin>>mas[i];
    <сортировка>
    j++;
}
Все равно как-то слабо представляю ее работоспособность. Помогите с реализацией или подкиньте примеров.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2013, 21:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отсортировать массив с хаотическим индексом (C++):

Отсортировать массив по убыванию, затем добавить недостающий элемент и отсортировать массив по возрастанию - C++
2) В массиве a ...a встречаются по одному разу все целые числа от 0 до n, кроме одного. За n действий найти пропущенное число с конечной...

Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать - C++
Добрый Вечер! Написал первую часть программы по этому заданию&quot;Ввести массив А. В массив В перенести все элементы массива А, стоящие правее...

Массив из 12 ячеек заполнить рандом, заменить нули в ячейках с четным индексом на 1 в ячейках с нечетным на -1 - C++
Массив из 12 ячеек, заполнить рандомно числами в диапазоне от -30 до 30. Заменить нули в ячейках с четным индексом на 1, в ячейках с...

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька - C++
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка), она должна двухмерный массив перевести построчно в одномерный...

Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию - C++
создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию. получилось вот что: #include...

Создать линейный массив, отсортировать его в другой массив, вывести адрес всех елементов - C++
Помогите пожалуйста с кодом ,нужно за час сдать , напишите код , только попроще Создать линейный массив, отсортировать его в другой...

5
Troll_Face
602 / 402 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
14.02.2013, 21:51 #2
имхо, бред это, а не задание... рандомьте массив, заполняйте его нулями, а в элементы, которые нужно что-то положить что-то ложите. затем тупо сортируйте по убыванию. вот и вся штука.
0
dooml
1 / 1 / 0
Регистрация: 06.02.2013
Сообщений: 15
15.02.2013, 00:44  [ТС] #3
Цитата Сообщение от Fatal Error Посмотреть сообщение
имхо, бред это, а не задание... рандомьте массив, заполняйте его нулями, а в элементы, которые нужно что-то положить что-то ложите. затем тупо сортируйте по убыванию. вот и вся штука.
Подробней можно?
0
w72er
3 / 3 / 0
Регистрация: 28.11.2012
Сообщений: 21
15.02.2013, 07:58 #4
Массив -- это список объектов, где объект определяется индексом массива. Правильно ли я понимаю, что у тебя есть пять объектов, которые расположены в массиве больше чем на 5 элементов? Например:
индекс 0: 6
индекс 1: 11
индекс 2: ничего
индекс 3: 45
индекс 4: ничего
индекс 5: 3
индекс 6: ничего
индекс 7: ничего
индекс 8: 104
индекс 9: ничего

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
#include <vector>
#include <cstdlib>
#include <iostream>
#include <algorithm>
 
int main()
{
    std::vector<int> bus; //шина, с которой считываем данные
    const int capacity = 20; //разрядность шины (количество портов)
 
    //сформируем состояние шины
    for (int i = 0; i < capacity; i++)
    {
        int random = rand() % 100; //от 0 до 99
        //сигнал регистрируется на порту шины, если его уровень больше 50.
        int signal = (random > 50) ? random : 0;
        bus.push_back(signal);
    }
 
    std::cout << "bus at now:" << std::endl;
    for (int i = 0; i < capacity; i++)
    {
        std::cout << "bus[" << i << "] = " << bus[i] << std::endl;
    }
 
    std::vector<int> tmp; //временный массив для сортировки
    for (int i = 0; i < capacity; i++)
    {
        if (bus[i] != 0) //если есть сигнал
            tmp.push_back(bus[i]);
    }
 
    //отсортировали сигналы по значению.
    std::sort(tmp.begin(), tmp.end());
 
    std::cout << "processed bus:" << std::endl;
    for (std::vector<int>::iterator it=tmp.begin(); it!=tmp.end(); ++it)
    {
        std::cout << *it << std::endl; //Вывод отсортированных сигналов
    }
 
    return 0;
}
1
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
15.02.2013, 08:11 #5
dooml, полагаю, Вам тут подойдет std::map.
0
dooml
1 / 1 / 0
Регистрация: 06.02.2013
Сообщений: 15
15.02.2013, 23:20  [ТС] #6
Цитата Сообщение от w72er Посмотреть сообщение
Массив -- это список объектов, где объект определяется индексом массива. Правильно ли я понимаю, что у тебя есть пять объектов, которые расположены в массиве больше чем на 5 элементов? Например:
индекс 0: 6
индекс 1: 11
индекс 2: ничего
индекс 3: 45
индекс 4: ничего
индекс 5: 3
индекс 6: ничего
индекс 7: ничего
индекс 8: 104
индекс 9: ничего
Почти, только вот так:

Индекс 10: 43
Индекс 76: 25
Индекс 2: 86
Индекс 45: 2
Индекс 96: 66
....
0
15.02.2013, 23:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2013, 23:20
Привет! Вот еще темы с ответами:

Создать линейный массив, отсортировать его в другой массив, вывести адрес всех елементов - C++
Помогите пожалуйста, за час нужно сдать , напишите код , только попроще создать линейный массив , отсортировать его в другой массив,...

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

Вычислить y= k14− 18 k для 6 значений k, вводимых с клавиатуры. Результат вычислений записать в массив. Полученный массив отсортировать по возрастанию - C++
#include&lt;iostream&gt; #include&lt;math.h&gt; #include&lt;iomanip&gt; using namespace std; double const n=20; int vvod( double y, int n) { ...

Отсортировать массив - C++
помогите отсортировать масив из числе 1,2,1,2,1,2,1,2 - так чтоб единици были вместе двойки отдельно . зарание спасибо Добавлено через...


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

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

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