Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Caimans
2 / 2 / 2
Регистрация: 08.05.2013
Сообщений: 104
Завершенные тесты: 1
1

Вывод индексов массива

19.02.2016, 13:18. Просмотров 783. Ответов 8
Метки нет (Все метки)

Добрый день
Возникла такая проблема. Есть массив, после его анализирования нужно вывести в консоль определенные индексы массива (min 2, max размер массива).
Создавать дополнительный массив запрещено, как можно еще запомнить индексы и вывести на экран?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2016, 13:18
Ответы с готовыми решениями:

Вывод индексов массива
Уважаемые обитатели форума, помогите новечку решить задачу, умоляю а то мысли...

Вывод первоначальных индексов массива
Здравствуйте, уважаемые форумчане!! Подскажите пожалуйста , как вывести...

C++: Вывод индексов отсортированных чисел массива
Вводится массив numbers, состоящий из N чисел. Создать новый массив index, в...

Многофункциональность. Ввод/вывод элементов двумерного массива и их индексов
Попросили сделать эту программу через многофункциональность. 1)Ввести массив А...

Массив. Вывод сумм значений отрицательных и индексов положительных элементов
Написать программу, которая выводит сумму значений отрицательных элементов,...

8
_Valera_
489 / 371 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
19.02.2016, 13:57 2
Цитата Сообщение от Caimans Посмотреть сообщение
Создавать дополнительный массив запрещено, как можно еще запомнить индексы и вывести на экран?
создать переменные...
0
Caimans
2 / 2 / 2
Регистрация: 08.05.2013
Сообщений: 104
Завершенные тесты: 1
19.02.2016, 14:09  [ТС] 3
Не рационально
Ибо придется создавать например 20 переменных, а задействовано может быть всего 2
0
Dreamer_0x01
258 / 85 / 30
Регистрация: 29.10.2015
Сообщений: 192
19.02.2016, 14:20 4
а) Сложить результаты проверок в файл, потом прочитать.
б) Если массив не более 32 элементов, то можно использовать 32-разрядную битовую маску, в которой каждый бит будет соответствовать помеченному номеру элемента массива

А вообще, нужно смотреть специфику задачи - чем обусловлен запрет на использование доп. массива. Если это требование к экономии оперативки - то это одно, если же это экономия других ресурсов - то другое...
0
Даценд
Модератор
Эксперт .NET
4149 / 3934 / 2605
Регистрация: 20.04.2015
Сообщений: 7,132
19.02.2016, 14:22 5
Caimans,
ну так выводите в процессе анализа массива
0
Caimans
2 / 2 / 2
Регистрация: 08.05.2013
Сообщений: 104
Завершенные тесты: 1
19.02.2016, 14:34  [ТС] 6
Делал сразу вывод, код вызывает сомнения в плане реализации, кажется, можно сделать намного лучше
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
//где а, счетчик расстояния между индексами
//b, присваивается индекс массива который нужно вывести
//с, проверка условия, если соседний индекс также надо было вывести
for (int i = 1; i < N-1; i++)
    {
        sum = array[i-1] + array[i + 1];
        b = i;
        if (sum > sum1 && a > 1)
        {
            sum1 = sum;
            printf("\r                                               \r");
            printf("%d %d ", b-1, b+1);
            a = 0;
        }
        else if (sum > sum1)
        {
            sum1 = sum;
            printf("\r                                               \r");
            printf("%d %d ", b-1, b+1);
            c = 0;
        }
        else if (sum == sum1 && a > 1)
        {
            printf("%d %d ", b-1, b, b+1);
            a = 0;
            c = 0;
        }
        else if (sum == sum1 && c == 0)
        {
            printf("\b\b%d %d %d ", b-1, b, b+1);
            c = 1;
        }
        else if (sum == sum1)
            printf("%d ", ++b);
        else
            ++a;
    }
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
19.02.2016, 14:40 7
Цитата Сообщение от Dreamer_0x01 Посмотреть сообщение
Если массив не более 32 элементов, то можно использовать 32-разрядную битовую маску
Битовую маску можно использовать при любом кол-ве элементов. Но это всё равно лишняя переменная, хотя и с минимизацией использования памяти. Из стандартных это std::bitset или std::vector<bool>.
Цитата Сообщение от Даценд Посмотреть сообщение
выводите в процессе анализа массива
Цитата Сообщение от Caimans Посмотреть сообщение
после его анализирования нужно вывести в консоль
Если дополнительно выделять ничего нельзя, то надо изменять сами элементы массива. После анализа проходим по массиву ещё раз и интерпретируем ячейки уже не как значения, а как необходимые признаки.
0
Dreamer_0x01
258 / 85 / 30
Регистрация: 29.10.2015
Сообщений: 192
19.02.2016, 16:58 8
Цитата Сообщение от Tulosba Посмотреть сообщение
Если дополнительно выделять ничего нельзя, то надо изменять сами элементы массива
Опять-таки, это возможно в том случае, если там есть, что изменить без потерь. То есть как минимум по одному биту в этих ячейках должно быть свободно(не используемо) для возможностей таких модификаций. То есть снова часть оперативки получается зарезервированной под эти "пометки" - тот же случай с битовыми масками, только биты не вместе хранятся, а распределены.
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
19.02.2016, 17:14 9
Цитата Сообщение от Dreamer_0x01 Посмотреть сообщение
это возможно в том случае, если там есть, что изменить без потерь.
Я предлагаю вообще затереть массив ПОЛНОСТЬЮ под свои нужды, т.к. в задании ничего не сказано о необходимости его сохранять после анализа. Тут, конечно, надо ещё учитывать какого рода анализ производится (но это уже, имхо, детали).
0
19.02.2016, 17:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2016, 17:14

Ввод/вывод элементов квадратной матрицы, вычисление индексов максимального элемента
Помогите написать программу для ввода элементов квадратной матрицы, вывода...

Список на базе массива индексов
Здравствуйте. Есть вот такая задача: Реализовать линейный список на базе...

Возврат индексов двумерного массива
Нужно получить индексы минимального элемента в матрице. Не понимаю, как...


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

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

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