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

Найти минимальное положительное число из данного набора

25.04.2013, 15:51. Показов 2990. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано целое число N и набор из N целых чисел. Найти минимальное положительное число из данного набора. Если положительные числа в наборе отсутсвуют, то вывести 0.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.04.2013, 15:51
Ответы с готовыми решениями:

Найти минимальное положительное число из данного набора (исправить ошибку)
Дано целое число N. Задать N элементов одномерного массива. Найти минимальное положительное число из данного набора. Если положительные...

Найти минимальное положительное число из данного набора (если положительные отсутствуют - вывести 0)
Дано целое число N. Задать N элементов одномерного массива. Найти минимальное положительное число из данного набора. Если положительные...

Найти минимальное положительное числа из набора
Дано целое число n и набор из N чисел найти минимальное положительное число из данного набора Если положительное число в наборе отсутствует...

13
138 / 130 / 59
Регистрация: 13.12.2012
Сообщений: 293
25.04.2013, 16:06
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int main()
{
    const int N=10;
    int arr[10]={6,2,-1,-2,-3,-4,-5,3,45,-8};
    int min=99999;
    bool flag=false;
    for (int i=1;i<N;i++)
        if (arr[i]>0 && arr[i]<min){
            min=arr[i];
            flag=true;}
    if (flag) cout<<min; else cout<<0;
}
1
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
25.04.2013, 16:08
Если она легкая, чего бы и самому не решить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
int main()
{
    int val = 0;
    size_t min = -1;
    while (std::cin) // ввод пока не будет введен любой знак кроме цифры
    {
        std::cin >> val;
        min = val > 0 && val < min ? val : min;
    }
    std::cout << (min == -1 ? 0: min);
}
Здесь, правда, ввод не N чисел.
2
 Аватар для GetVariable
164 / 120 / 46
Регистрация: 17.03.2013
Сообщений: 284
25.04.2013, 16:08
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 <iostream>
#include <algorithm>
#include <vector>
 
int get_min_number(std::vector<int> array);
 
int main()
{
    std::vector<int> numbers;
 
    numbers.push_back(-9);
    numbers.push_back(5);
    numbers.push_back(1);
    numbers.push_back(-99);
 
 
    std::cout << "Min number: " << get_min_number(numbers) << std::endl;
 
    return 0;
}
 
 
int get_min_number(std::vector<int> array)
{
    std::sort(array.begin(), array.end());
 
    for(size_t i = 0; i < array.size(); ++i)
        if(array.at(i) >= 0)
            return array.at(i);
 
    return 0;
}
Очень интересное задание.
1
0 / 0 / 0
Регистрация: 19.09.2011
Сообщений: 25
25.04.2013, 16:09  [ТС]
потому что не могу решить
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
25.04.2013, 16:24
и я свой вариант

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
#include <iostream>
#include <iomanip>
#include <vector>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <time.h>
using namespace std;
 
int main(int argc, char* argv[])
{
    int N(10);
    vector<int> coll(N);
    
    srand(time(NULL));
    for_each(coll.begin(), coll.end(), [](int &elem)
        {
            elem = -10 + rand() % 21;
        });
 
    copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
 
    int min = *min_element(coll.begin(), coll.end(), [](int i, int j) -> bool
        {
            if(i >= 0 && j >= 0)
                return i < j;
            else{
                if(i >= 0)
                    return true;
                else
                    return false;
            }
        });
 
    cout << "\nMin: " << (min == -1 ? 0: min);
    cout << "\n\n";
    return 0;
}
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
25.04.2013, 16:34
Цитата Сообщение от yoghurt92 Посмотреть сообщение
cout << "\nMin: " << (min == -1 ? 0: min);
yoghurt92, взять-то Вы у меня взяли эту строчку, а знаете хоть, почему там сравнение с -1 идет? Потому, что изначально я установил min типа size_t равную -1, т.е. отрицательное число в беззнаковом типе дает максимальное число типа unsigned int. Сравнение с -единицей, то бишь, с этим числом проверяет, есть ли в введенной последовательности неотрицательное число меньше этого самого максимального.
А у Вас min типа int, подобного эффекта не произойдет.
1
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
25.04.2013, 16:42
BumerangSP, да, вы правы, поспешил Думаю вот так будет правильно

C++
1
cout << "\nMin: " << (min < 0 ? 0: min);

BumerangSP, спасибо вам большое
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
25.04.2013, 16:47
yoghurt92, еще не все, переделайте, ответы не совсем корректные. 0, например, не является положительным числом.
Миниатюры
Найти минимальное положительное число из данного набора  
2
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
25.04.2013, 16:52
BumerangSP, вот

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
#include <iostream>
#include <iomanip>
#include <vector>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <time.h>
using namespace std;
 
int main(int argc, char* argv[])
{
    int N(10);
    vector<int> coll(mas, mas +10);
    
    srand(time(NULL));
    for_each(coll.begin(), coll.end(), [](int &elem)
        {
            elem = -10 + rand() % 21;
        });
 
    copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
 
    int min = *min_element(coll.begin(), coll.end(), [](int i, int j) -> bool
        {
            if(i > 0 && j > 0)
                return i < j;
            else{
                if(i > 0)
                    return true;
                else
                    return false;
            }
        });
 
    cout << "\nMin: " << (min > 0 ? min : 0);
    cout << "\n\n";
    return 0;
}
0
 Аватар для GetVariable
164 / 120 / 46
Регистрация: 17.03.2013
Сообщений: 284
25.04.2013, 17:10
Цитата Сообщение от BumerangSP Посмотреть сообщение
yoghurt92, еще не все, переделайте, ответы не совсем корректные. 0, например, не является положительным числом.
Принято считать для определённости Ноль положительным числом.

Данный момент следовало бы уточнить у преподавателя, тк ноль может выступать положительным числом, это на самом деле волевое решение, кому как удобно
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
25.04.2013, 17:14
GetVariable, что-то я ни одной теоремы про это не видели и не в курсе, кем это принято. Мб удобно? С таким же успехом 0 можно считать и отрицательным.
1
 Аватар для GetVariable
164 / 120 / 46
Регистрация: 17.03.2013
Сообщений: 284
25.04.2013, 17:18
Цитата Сообщение от BumerangSP Посмотреть сообщение
GetVariable, что-то я ни одной теоремы про это не видели и не в курсе, кем это принято. Мб удобно? С таким же успехом 0 можно считать и отрицательным.
Все верно! http://ru.wikipedia.org/wiki/О... льный_ноль

Ноль может быть как положительным так и отрицательным.

это можно доказать программно:

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
    if(+0 == 0)
        std::cout << " +0 == 0 ";
    
    if(-0 == 0)
        std::cout << " -0 == 0 ";
 
    return 0;
}
Именно по этому, данный вопрос нужно было уточнить у преподавателя, тк явно утверждать мы не можем.

Насчёт "принятно", действительно вышла опечатка, спасибо за исправления.
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
25.04.2013, 17:23
GetVariable, если в таком контексте...Но здесь, такое не нужно учитывать, имхо.

Не по теме:

Цитата Сообщение от GetVariable Посмотреть сообщение
Насчёт "принятно", действительно вышла опечатка, спасибо за исправления.
я? я не исправлял :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.04.2013, 17:23
Помогаю со студенческими работами здесь

Найти минимальное положительное число
все вычисляет верно, но желательно оптимизировать, может знает кто? #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace...

Найти минимальное положительное число.
Помогите решить задачку. Ввести с клавиатуры три вещественных числа. Найти минимальное положительное число. Результат вывести на экран. ...

Найти минимальное положительное число в наборе
Дано целое число N и набор из N чисел. Найти минимальное положительное число из данного набора. Если положительные числа в наборе...

Найти в массиве минимальное положительное число среди элементов, расположенных до минимума
Срочно, нужно найти в массиве минимальное положительное число среди элементов, располагающихся до минимального элемента массива.

Найти минимальное положительное число из данного набора
Дано целое число N и набор из N чисел. Найти минимальное положительное число из данного набора. Если положительные числа в наборе...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru