Форум программистов, компьютерный форум CyberForum.ru

Найти в массиве максимальный элемент и минимальный элемент, и поменять их местами - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
novitsek
-4 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 14
17.01.2014, 11:16     Найти в массиве максимальный элемент и минимальный элемент, и поменять их местами #1
Привет) помогите пожалуйста решить задачу. Дан целочисленный массив из m элементов. Найдите в нем максимальный элемент и минимальный элемент,и поменять их местами.
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 <cstdlib>
#include <Windows.h>
using namespace std;
int main()
{
        SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int i;
    int m[10];
    int max,min;
    int temp;
    cout << "введите массив чисел" << endl;
    for(i=0;i<10;i++)
    cin>>m[i];
    max=0;
    {
        for(i=0;i<10;i++)
        if(m[i]>max)
        max=m[i];
    }
    min=1;
    {
        for(i=0;i<10;i++)
        if(m[i]<min)
        min=m[i];
    }
    for (int i=0;i<10;i++)
   if (min==m[i])
      m[i] = max;
   else if (max==m[i])
      m[i] = min;
for(int i=0; i<10; i++)
  cout << m[i] << " ";
   cout<<"\n\n";
  cout<<"min="<<min<<" max="<<max<<"\n";
return 0;
}
как сделать так чтоб менял только 1 допустим максимальный элемент а не все?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2014, 11:16     Найти в массиве максимальный элемент и минимальный элемент, и поменять их местами
Посмотрите здесь:

C++ Поменять местами максимальный и минимальный элемент в массиве
Поменять местами минимальный и максимальный элемент C++
Матрица, найти и поменять местами минимальный и максимальный элемент C++
C++ Найти максимальный отрицательный и минимальный положительный элемент и поменять их местами
В двумерном массиве поменять местами максимальный и минимальный элемент местами C++
Поменять местами минимальный элемент с первым элементом массива, а максимальный элемент с последним C++
В двумерном массиве поменять местами максимальный и минимальный элемент C++
C++ Массивы: поменять местами минимальный по модулю элемент и максимальный отрицательный элемент

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dzzirt
0 / 0 / 0
Регистрация: 14.01.2014
Сообщений: 6
17.01.2014, 13:20     Найти в массиве максимальный элемент и минимальный элемент, и поменять их местами #2
Нужно помимо нахождения max и min сохранять индексы им соответствующие. И затем просто поменять их местами.
C++
1
2
m[iMax] = min;
m[iMin] = max;
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
17.01.2014, 13:33     Найти в массиве максимальный элемент и минимальный элемент, и поменять их местами #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
#include <algorithm>
#include <iterator>
#include <iostream>
#include <random>
#include <array>
 
int main()
{
    std::default_random_engine generator;
    std::uniform_int_distribution <> distribution(-25, 25);
 
    const size_t arraySize(10);
    std::array <int, arraySize> array;
    std::cout << "Array: " << std::endl;
    std::generate(array.begin(), array.end(), [&]() -> int {
        return distribution(generator);
    });
    std::copy(array.begin(), array.end(), std::ostream_iterator <int> (std::cout, " "));
 
    auto minimal_maximalArrayElements(std::minmax_element(array.begin(), array.end()));
    std::iter_swap(minimal_maximalArrayElements.first, minimal_maximalArrayElements.second);
    std::cout << std::endl << "Array: " << std::endl;
    std::copy(array.begin(), array.end(), std::ostream_iterator <int> (std::cout, " "));
 
    std::system("pause >> temp");
    return 0;
}
Yandex
Объявления
17.01.2014, 13:33     Найти в массиве максимальный элемент и минимальный элемент, и поменять их местами
Ответ Создать тему
Опции темы

Текущее время: 04:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru