Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/533: Рейтинг темы: голосов - 533, средняя оценка - 4.65
 Аватар для Genja
0 / 0 / 0
Регистрация: 12.01.2012
Сообщений: 4

Поиск минимального элемента в массиве

12.01.2012, 16:12. Показов 103479. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить задачку,Вводим в ручную массив и в нем нужно найти минимальные элемент
Заранее спасибо
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.01.2012, 16:12
Ответы с готовыми решениями:

Поиск минимального элемента в массиве
Используя шаблон функции реализовать следующие задачи: 1) считывание массива из стандартного ввода; 2) вывод элементов массива на...

Поиск в массиве минимального элемента
Ребят помогите. дан массив n*n. нужно найти в каждом столбце минимальный элемент и записать данные в новый массив. подтолкните на путь...

Поиск минимального элемента в массиве
Программа поиска минимального элемента в неупорядоченном массиве за время О(1). Подскажите, пожалуйста, где ошибка и как ее исправить?...

10
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
12.01.2012, 16:18
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::vector<int> vec((std::istream_iterator<int>(std::cin)), std::istream_iterator<int>());
    
    if (!vec.empty())
        std::cout << "Min element: " << *std::min_element(vec.begin(), vec.end()) << std::endl;
    
    return 0;
}
4
 Аватар для Serejke_qq
199 / 142 / 57
Регистрация: 06.07.2011
Сообщений: 300
12.01.2012, 16:19
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
#include <iostream.h>
#include <conio.h>
 
int main(int argc, char *argv[])
{
    int size;
    double *mas;
 
    cout << "size = ";
    cin >> size;
 
    mas = new double[size];
 
    for(int i=0; i<size; i++)
        cin >> mas[i];
 
    double min=mas[0];
 
    for(int i=1; i<size; i++)
        if(mas[i] < min) min = mas[i];
 
    for(int i=0; i<size; i++)
        cout << "  " << mas[i];
 
    cout << "\nmin = " << min;
 
    getch();
    delete []mas;
 
    return 0;
}
2
Кошковед
 Аватар для co6ak
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
12.01.2012, 17:01
нафих так много циклов >_<
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
int main ()
{
    int *mas;
    int n;
    std::cout << "Enter number of elements: ";
    std::cin  >> n;
    mas = new int [n];
    std::cout << "\nEnter array values: \n";
 
    int min = 0;
 
    for ( int i = 0; i < n; i ++ )
    {
        std::cin >> mas[i];
        if ( mas[min] > mas[i] ) min = i;
    }
 
    std::cout << "\nMinimal element in array is mas[" << min << "] = " << mas[min];
    std::cin.get();
    delete [] mas;
}
2
 Аватар для TFLinden
7 / 7 / 6
Регистрация: 21.03.2013
Сообщений: 33
21.03.2013, 03:11
C++
1
2
3
4
// Немножко оффтопа
Почему вместо подключения библиотеки имен, постоянно на нее ссылаться? 
Ведь перегрузки имен нет в коде.
// Или мое ламерское святейшество чего-то не понимает...
0
 Аватар для GoldenId
142 / 143 / 64
Регистрация: 11.11.2010
Сообщений: 877
Записей в блоге: 10
21.03.2013, 03:22
Цитата Сообщение от TFLinden Посмотреть сообщение
C++
1
2
3
4
// Немножко оффтопа
Почему вместо подключения библиотеки имен, постоянно на нее ссылаться? 
Ведь перегрузки имен нет в коде.
// Или мое ламерское святейшество чего-то не понимает...
Афайк в сях единственный способ использовать функции, переменные, классы из библиотеки - это иметь их в коде того Вашего файла, который компилируется в данный момент. А единственный способ заиметь их в коде Вашего файла - чтобы препроцессор добавил их туда. Это и происходит, когда ставится директива
C++
1
#include<iostream>
Фактически файл
C++
1
2
3
4
5
6
7
#include <iostream>
using namespace std;
 
int main()
{
    cout << "Hello world!"
}
превращается препроцессором в
C++
1
2
3
4
5
6
7
// содержимое файла iostream
using namespace std;
 
int main()
{
    cout << "Hello world!"
}
Добавлено через 37 секунд
Между прочим, очень важный вопрос, TFLinden.

Добавлено через 2 минуты
silent_1991, приятно посмотреть. Не знал, что есть такая штука istream_iterator
Кликните здесь для просмотра всего текста
да и min_element тоже не знал
1
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
21.03.2013, 07:02
Цитата Сообщение от GoldenId Посмотреть сообщение
Афайк в сях единственный способ использовать функции, переменные, классы из библиотеки - это иметь их в коде того Вашего файла, который компилируется в данный момент. А единственный способ заиметь их в коде Вашего файла - чтобы препроцессор добавил их туда.
Полагаю, вопрос был не про include, а про using namespace.
TFLinden, на эту тему есть тонны холиваров. Лично для меня это дело привычки, да и так правильнее с точки зрения идеологии (если первой осмысленной строкой кода является using namespace xxx;, то смысл в пространствах имён отпадает как таковой).

Цитата Сообщение от GoldenId Посмотреть сообщение
приятно посмотреть. Не знал, что есть такая штука istream_iterator
С ней можно и без вектора обойтись:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::cout << "Min element: "
              << *std::min_element(std::istream_iterator<int>(std::cin),
                                   std::istream_iterator<int>())
              << std::endl;
    
    return 0;
}
Добавлено через 3 минуты

Не по теме:

TFLinden, кроме того, есть её "антоним" - std::ostream_iterator. Он позволяет, например, не писать цикл для вывода коллекции вручную. Можно сделать так (для простоты и наглядности использую последний стандарт, но из него только список инициализации вектора и std::begin/std::end):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::vector<int> vec = {1, 2, 3, 4, 5};
    
    std::copy(std::begin(vec), std::end(vec), std::ostream_iterator<int>(std::cout, "  "));
    
    return 0;
}

1
 Аватар для TFLinden
7 / 7 / 6
Регистрация: 21.03.2013
Сообщений: 33
21.03.2013, 13:31
Цитата Сообщение от silent_1991 Посмотреть сообщение
Полагаю, вопрос был не про include, а про using namespace.
TFLinden, на эту тему есть тонны холиваров. Лично для меня это дело привычки, да и так правильнее с точки зрения идеологии (если первой осмысленной строкой кода является using namespace xxx;, то смысл в пространствах имён отпадает как таковой).

Просто как по мне потребность в этом возникает только при перегрузке значений, или когда одни и те же библиотеки имен имеют функции/методы с одинаковым именем.
0
21.03.2013, 13:57

Не по теме:

Цитата Сообщение от TFLinden Посмотреть сообщение
Просто как по мне потребность в этом возникает только при перегрузке значений, или когда одни и те же библиотеки имен имеют функции/методы с одинаковым именем.
А если ваш проект сначала живёт в собственном мирке, а потом, при расширении, вдруг начинает пользоваться библиотекой, в которой большинство символов лежит в глобальном пространстве имён (пример такой - Qt)? Будете ко всем vector'ам да sort'ам std:: дописывать?
В общем, ещё раз говорю, есть на эту тему множество холиваров, в том числе и на этом форуме. Лучше обратитесь к ним, если интересен данный вопрос. Я начинать ещё один не имею ни малейшего желания.

0
 Аватар для GoldenId
142 / 143 / 64
Регистрация: 11.11.2010
Сообщений: 877
Записей в блоге: 10
21.03.2013, 21:26
silent_1991, я сейчас не на плюсах пишу, но всё равно, афайк, использование агрегатных функций - направление прогресса, хотя бы потому что это удобно (привет выводу десятичного числа на ассемблере).
0
0 / 0 / 0
Регистрация: 21.05.2019
Сообщений: 8
02.06.2019, 23:35
В этом коде мы заполняем массив случайными значениями, а не в ручную, и ищем минимальный элемент этого массива!

Надеюсь понятно расписал!


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
49
50
51
52
53
54
55
56
#include <iostream>
#include <ctime> //библиотека для функции "srand"
 
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "russian"); // Подключаем русский язык
    
    srand(time(NULL)); // Функция времени, которая меняется ежесекундно. Она нам нужна для заполнения массива случайными числами
    
    int const MASS = 10; // Объявляем границы массива
    int arr[MASS]; // Объявляем Массив
    
    bool alreadyThere; // Булевая переменная (возвращает "true" или "false")
    for (int i = 0; i < MASS; ) // цикл для массива
    {
        alreadyThere = false; // Присваеваем булевой переменной значение "false"
        int newRandomValue = rand() % 20; // Придаем переменной случайное значение (в нашем случае, ограничиваем ее значениями от 0 до 20)
 
        for (int j = 0; j < i; j++) // цикл другого массива, который служит для выявления повторяющихся чисел
        {
            if (arr[j] == newRandomValue) // сравниваем элемент массива "j" с переменной, которой присвоили случайное значение
            {
                alreadyThere = true; // если высказывание правдиво, то это значение отбрасывается и цикл повторяется
                break; // как только цикл выполниться, его процесс прекращается
            }
             
        }
 
        if (!alreadyThere) // если значение ложно (нет повторяющихся чисел) то мы заполняем каждый элемент массива такими значениями
        {
            arr[i] = newRandomValue; //присвоение значений массива
            i++; //  инкремент
        }
    
    }
 
    for (int i = 0; i < MASS; i++) // цикл, отвечающий за вывод значений массива в консоль
    {
        cout << arr[i] << endl;
    }
    
    int minValue = arr[0]; // Объявляем новую переменную и приравниваем ее к нулевому элементу массива
    
    for (int i = 0; i < MASS; i++) // цикл, который будет давать нам возможность проверить каждый элемент массива
    {
        if (arr[i] < minValue) // сравниваем каждый элемент с переменной, которую объявили ранее
        {
            minValue = arr[i]; //после выполнения условия и цикла, присваиваем полученное значение
        }
    }
 
    cout << "Наименьшее число в массиве = " <<  minValue << endl; // выводим сообщение с значением минимального элемента массива
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.06.2019, 23:35
Помогаю со студенческими работами здесь

Написать программу: поиск минимального элемента в массиве
Заполнить квадратную матрицу случайными числами (функция). найти минимальный из повторяющихся элементов матрицы. Вывести матрицу...

Поиск минимального элемента и его индекса в массиве
всем привет! не понимаю как искать в массиве тот элемент, который наименьший и вывести этот элемент и с индексом местоположения точнее...

Поиск минимального элемента и его номера в массиве
Задание : Написать программу, в которой пользователь заполняет массив из 10 чисел. Найти: a. произведение всех элементов массива. b....

Поиск максимального и минимального элемента в одномерном динамическом массиве
Помогите пожалуйста, никак не могу понять где тут ошибка и что вообще нужно делать(код на C++) #include &quot;stdafx.h&quot; #include...

Поиск минимального элемента в трёхмерном массиве, используя адресную арифметику
1. Написать программу поиска минимального элемента в трёхмерном массиве используя адресную арифметику. не понимаю как создать трехмерный...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru