Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 27.11.2015
Сообщений: 77
1

Вычислить минимальный элемент одномерного массива

19.09.2016, 17:16. Показов 1344. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В одномерном массиве, состоящем из N действительных элементов, вычислить:
n минимальный элемент массива;
n сумму элементов массива, расположенных между первым и последним положительными элементами.
n Превратить массив таким образом, чтобы сначала располагались все элементы, равные нулю, а потом - все остальное.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.09.2016, 17:16
Ответы с готовыми решениями:

Вычислить минимальный элемент одномерного массива
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) минимальный элемент...

Минимальный элемент одномерного массива A заменить на третий отрицательный элемент
Минимальный элемент одномерного массива A заменить на третий отрицательный элемент. Третий...

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

Определить минимальный элемент одномерного массива
Помогите Определить минимальный элемент одномерного массива. Размер массива и массив вводятся...

14
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
19.09.2016, 17:17 2
Недавно решали точно такое же задание.
0
0 / 0 / 0
Регистрация: 29.03.2016
Сообщений: 8
21.09.2016, 14:56 3
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
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    int mas[10]={1,2,4,0,8,1,0,4,5,4};
    for(int i  = 0; i<10; i++)
    {
        //cin >> mas[i] ;
        cout << mas[i] << "   ";
    }
    cout << endl;
    int min = mas[0];
    for(int i= 0; i<10; i++)
    {
        if(min>mas[i])
        {
        min = mas[i];
        }
    }
    cout << "Минимальный элемент: " << min << endl;
    int sum = 0;
    for(int i =0; i<10; i++)
    {
        sum +=mas[i];
    }
    cout << "Сумма = " << sum << endl;
    int temp = 0;
    for(int i =0; i<10; i++)
    {
        for(int j = 0;  j<10; j++)
        {
        if(mas[i]<mas[j])
        {
            temp = mas[i];
            mas[i] = mas[j];
            mas[j] = temp;
        }
        }
    }
    for(int i= 0; i<10; i++)
    {
        cout << mas[i] << "  ";
    }
    cout << endl;
    system("pause");
    return 0;
}
Ну как то так, правда последнее задание так себе получилось
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
21.09.2016, 15:46 4
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <numeric>
 
 
template<typename T, std::size_t N>
void out(T (&arr)[N])
{
    for(auto e: arr)
        std::cout << e << " ";
}
 
 
int main()
{
    int arr[] = {0, -2, 0, 5, 7, 3, 8, 0, -5, 3, -7, -4};
    auto begin = std::begin(arr);
    auto end = std::end(arr);
    std::cout << "Source: ";
    out(arr);
    std::cout << "\n";
    std::cout << "Min: " << *std::min_element(begin, end) << "\n";
    auto itF = std::find_if(begin, end, [](int x){return x>0;});
    if(itF == end){
        std::cout << "Positive not found\n";
    }else{
        auto itL = std::find_if(std::rbegin(arr), std::rend(arr), [](int x){return x>0;});
        std::cout << "Sum: " << std::accumulate(itF, itL.base(), 0) << "\n";
    }
    std::partition(begin, end, [](int x){return x==0;});
    std::cout << "Result: ";
    out(arr);
    std::cout << "\n";
}
http://rextester.com/XIOV41060
1
Объявлятель переменных
1220 / 406 / 320
Регистрация: 24.09.2011
Сообщений: 1,265
22.09.2016, 14:37 5
Функция вычисления минимального элемента:
C++
1
2
3
4
double gM(double *A, int N) {
    int M=N/2,X,Y;
    return(N==1?A[0]:N==2?A[A[0]>A[1]]:(X=gM(A,M))<(Y=gM(A+M,N-M))?X:Y);
}
0
Заблокирован
22.09.2016, 18:48 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//init
    float init[10] = {-2, 3, -10, 10, 3, 1, 2, 2};
 
    //result
    //1
    cout << *std::min_element(init, init + 10) << endl;
 
    //2
    cout << std::accumulate(std::find_if(init, init + 10, std::bind1st(std::less<float>(), 0)),
            &*(std::find_if(reverse_iterator<float*>(init + 9), reverse_iterator<float*>(init - 1),
            std::bind1st(std::less<float>(), 0)) -= 1), 0) << endl;
 
    //3
    std::stable_partition(init, init + 10, std::bind2nd(std::equal_to<float>(), 0));
    for (const float& elem : init)cout << elem << " ";
Добавлено через 6 минут
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
2
3
int arr[] = {0, -2, 0, 5, 7, 3, 8, 0, -5, 3, -7, -4};
    auto begin = std::begin(arr);
    auto end = std::end(arr);
для массива, поржал )))
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
22.09.2016, 18:51 7
Цитата Сообщение от Dsasdf Посмотреть сообщение
для массива, поржал )))
Вас что-то удивило в этом коде? Всё корректно, зачем "ржать"?
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
22.09.2016, 19:03 8
Цитата Сообщение от Dsasdf Посмотреть сообщение
для массива, поржал
Специально для Вас: http://en.cppreference.com/w/cpp/iterator/begin
Особое внимание обратить на:
C++
1
2
template< class T, std::size_t N > 
constexpr T* begin( T (&array)[N] );
Добавлено через 6 минут
Dsasdf, ну а я пока покатаюсь над Вашим кодом.
Чем обусловлено использование всяких bind1st (bind2nd), который уже устарели?
Причем следом идет использование range-based-for.
1
Заблокирован
22.09.2016, 19:16 9
Цитата Сообщение от Croessmah Посмотреть сообщение
Чем обусловлено использование всяких bind1st (bind2nd), который уже устарели?
Еще перл. писать свои велосипеды потому, что STL устарел? )))). Дальше что?

Добавлено через 7 минут
Цитата Сообщение от Croessmah Посмотреть сообщение
template< class T, std::size_t N >
constexpr T* begin( T (&array)[N] );
Я рад, что ты открыл это для себя. НО, зачем ?? )))

Добавлено через 3 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
я пока покатаюсь над Вашим кодом
Удачи, не знающий основ.
0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
22.09.2016, 19:18 10
Цитата Сообщение от Dsasdf Посмотреть сообщение
писать свои велосипеды потому, что STL устарел?
Dsasdf, откройте для себя понятие "deprecated":
Миниатюры
Вычислить минимальный элемент одномерного массива  
0
Заблокирован
22.09.2016, 19:42 11
Цитата Сообщение от gru74ik Посмотреть сообщение
Dsasdf, откройте для себя понятие "deprecated":
Ну я знаю, и,что ? )) Значит теперь пишем все велосипеды, потому, что там сказали? .
В STL оно будет всегда и там где удобно будет использоваться всегда, но то, что некоторые "знающие С++" с нарисованными цифрами про это слухом не слыхали я че-то не удивлен.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
22.09.2016, 19:44 12
Цитата Сообщение от Dsasdf Посмотреть сообщение
Значит теперь пишем все велосипеды, потому, что там сказали?
Какие велосипеды? Если не хотите лямбы, то хоть уж std::bind, а не эти явно устаревшие штуковины.
Цитата Сообщение от Dsasdf Посмотреть сообщение
В STL оно будет всегда и там где удобно будет использоваться всегда
Угу. И поэтому там есть более новый std::bind
Цитата Сообщение от Dsasdf Посмотреть сообщение
Удачи, не знающий основ.
Смешно. Ну удачи, самовлюбленный человек.
Цитата Сообщение от Dsasdf Посмотреть сообщение
про это слухом не слыхали я че-то не удивлен
Ага. Особо знающие C++ еще iostream.h используют.

Добавлено через 1 минуту
gru74ik, я основ не знаю. Печаль.
1
Заблокирован
22.09.2016, 19:46 13
Цитата Сообщение от Croessmah Посмотреть сообщение
Какие велосипеды? Если не хотите лямбы, то хоть уж std::bind, а не эти явно устаревшие штуковины.
))) Перл 3 - я все равно буду писать лямбду, даже, когда есть готовая вещь 1 в 1 в STL

Добавлено через 1 минуту
Цитата Сообщение от Croessmah Посмотреть сообщение
gru74ik, я основ не знаю.
После твоих перлов это факт.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
22.09.2016, 19:49 14
Цитата Сообщение от Dsasdf Посмотреть сообщение
я буду писать лямбду когда есть готовая вещь 1 в 1 в STL
Ага. less + bind, а не bint2nd.

Добавлено через 1 минуту
тогда это зачем навелосипедил:
Цитата Сообщение от Dsasdf Посмотреть сообщение
C++
1
for (const float& elem : init)cout << elem << " ";
???
Почему не copy с ostream_iterator?

Добавлено через 49 секунд
Цитата Сообщение от Dsasdf Посмотреть сообщение
После твоих перлов это факт.
Угу. Я уже своё на биндах отписал, спасибо, надышался.
0
0 / 0 / 0
Регистрация: 29.03.2016
Сообщений: 8
23.09.2016, 22:40 15
Я написал тот код, думая что автору нужен такой, а готовые шаблоны и методы они наверное ещё не изучили))
0
23.09.2016, 22:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2016, 22:40
Помогаю со студенческими работами здесь

Минимальный и максимальный элемент одномерного массива
Дан массив int mas. Определить, что стоит правее - минимальный и максимальный элемент.

Максимальный и минимальный элемент одномерного массива
Доброго времени суток всем. условие задачи таково: Нужно найти максимальный и минимальный элемент...

Максимальный и минимальный элемент одномерного массива
Доброго времени суток всем. условие задачи таково: Нужно найти максимальный и минимальный элемент...

Найти минимальный элемент заданного одномерного массива
Найти минимальный элемент массива А .


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru