Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2017, 20:05   #1
Vladkp
Пользователь
 
Регистрация: 05.10.2016
Сообщений: 24
По умолчанию Найти в массиве номера элементов, равных минимальному - C++

Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 .

Выходные данные
Программа должна вывести в одной строке номера элементов массива, равных минимальному, разделив их пробелами.

Например:
входные данные
5
1 2 1 3 1

выходные данные
1 3 5

вот код, подскажите как вывести номера элементов массива равных минимальному
Код:
#include <iostream>
using namespace std;
int main ()
{
   int n;
   cin>>n;
    int min_nechet[n];
    for (int i=0;i<n;i++ )
    {
      
        cin>>min_nechet[i];
        cout<<endl;
    
    }
    int min=min_nechet[0];  
    for(int i=0; i<n; i++)
    {
        if(min>min_nechet[i])
            min=min_nechet[i];
    }
 
    cout<<"min = "<<min;
}
Vladkp вне форума Ответить с цитированием
Старый 04.05.2017, 21:40   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Тебе нужен массив бесконечной длины (или хотя бы на 20 элементов) "А[20]" в который и будешь записывать индексы минимальных элементов.

т.е.
Код:
    k=0;
    for(int i=0; i<n; i++)
    {
        if(min==min_nechet[i])
{
           A[k]= i;
         k=k+1;
}
    }
а потом его вывод на экран.
ura_111 вне форума Ответить с цитированием
Старый 04.05.2017, 21:55   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Причем тут 20 если написано, что до  10000 элементов?

Можно просто сразу выводить вместо записи в массив.

С массивом может не пройти ограничение по памяти, которые обычно есть в таких задачах.
Хотя тут всего 40 КБ (или даже меньше если не int), так что наверно и так сойдет.
Но лучше тогда хотя бы std::vector взять.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.05.2017, 07:44   #4
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

При вводе нужна переменная, которая будет сравнивать вводимые значения и сохранять минимальное. Потом, во втором цикле это значение надо сравнивать со значениями в ячейках, и сразу выводить на экран номер ячейки совпадающий с минимальным значением. Всё.
KAMLS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как в массиве найти мах чьи номера парные ваня234 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 19.11.2015 19:36
Найти произведение элементов массива, не равных 0 и стоящих на четных местах ( Delphi ) Nikta1111 Помощь студентам 1 06.12.2011 08:27
Матрица целых чисел А(3,4). Найти количество нулей и произведение элементов не равных нулю (Basic) AnnKarpinskaya Помощь студентам 1 16.05.2011 23:35
Найти наибольший элемент массива К, не имеющий себе равных в массиве L Cucumber768 Помощь студентам 0 03.05.2011 01:37
В массиве из п элементов много совпадающих элементов. Найти количество различных элементов Strax Фриланс 11 12.06.2010 20:13