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

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

Восстановить пароль Регистрация
 
Айбек
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 11
22.07.2012, 13:17     Найдите минимальный и максимальный элемент массива и поменяйте их местами #1
прошу помочь



найдите минимальный и максимальный элемент массива и поменяйте их местами
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.07.2012, 13:17     Найдите минимальный и максимальный элемент массива и поменяйте их местами
Посмотрите здесь:

C++ Поменять местами минимальный и максимальный элемент массива V[25] и подсчитать количество парных элементов массива
C++ найти максимальный элемент массива x(15) . переставить местами этот максимальный элемент с индексом 4
В двумерном массиве поменять местами максимальный и минимальный элемент местами C++
C++ Найти в массиве максимальный элемент и минимальный элемент, и поменять их местами
Поменять местами минимальный элемент с первым элементом массива, а максимальный элемент с последним C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
22.07.2012, 13:26     Найдите минимальный и максимальный элемент массива и поменяйте их местами #2
Можно вот так сделать

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
#include <iostream> 
using namespace std; 
int main() 
{   
    const int size = 5;
    int array[size] = { 11, 23, 5, 67, 8 }; 
    int i;  
    int max, min; 
    int index_max, index_min;
 
    for ( i = 0; i < size; i++) 
        cout << array[i] << " "; 
    cout << endl;  
 
    max = array[0]; 
    index_max = 0; 
 
    for ( i = 1; i < size; i++)  
        if(max < array[i]) 
        { 
            max = array[i]; 
            index_max = i; 
        } 
 
        min = array[0]; 
        index_min = 0;
 
        for ( i = 1; i < size; i++)  
            if( min > array[i]) 
            { 
                min = array[i]; 
                index_min = i; 
            }  
 
            int temp = array[index_max]; 
            array[index_max] = array[index_min]; 
            array[index_min] = temp; 
 
            for ( i = 0; i < size; i++) 
                cout << array[i] << " "; 
            cout << endl;
}
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
22.07.2012, 13:27     Найдите минимальный и максимальный элемент массива и поменяйте их местами #3
min_element
max_element
swap
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
22.07.2012, 13:30     Найдите минимальный и максимальный элемент массива и поменяйте их местами #4
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
#include <iostream>
#include <windows.h>
#include <climits>
using namespace std;
 
int main()
{
    int arr[10], min=INT_MAX, max=INT_MIN, minIndex, maxIndex, temp;
    
    cout << "Введите 10 целых чисел: ";
    for (int i=0; i<10; i++)
    {
        cin >> arr[i];
        
        if (arr[i] < min)
        {
            min = arr[i];
            minIndex = i;
        }
        
        if (arr[i] > max)
        {
            max = arr[i];
            maxIndex = i;
        }
    }
    
    temp = min;
    arr[minIndex] = max;
    arr[maxIndex] = temp;
        
   return 0;
}
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
22.07.2012, 13:32     Найдите минимальный и максимальный элемент массива и поменяйте их местами #5
Или так..

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
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main() {
   int array[] = { 11, 23, 5, 67, 8 }; 
   int size = sizeof(array) / sizeof(*array);
   
   std::swap(
      *std::max_element(
         array,
         array + size
      ),
      *std::min_element(
         array,
         array + size
      )
   );
   
   std::copy(
      array,
      array + size,
      std::ostream_iterator <int>(std::cout, " ")
   );
}
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
22.07.2012, 13:37     Найдите минимальный и максимальный элемент массива и поменяйте их местами #6
Пользуясь советами уважаемого Петррр можно сделать так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream> 
#include <algorithm>
using namespace std; 
int main() 
{   
    const int size = 5;
    int array[size] = { 11, 23, 5, 67, 8 }; 
    int i;  
    
   for ( i = 0; i < size; i++) 
        cout << array[i] << " "; 
    cout << endl;   
 
    swap(*max_element(array, array+size), *min_element(array, array+size));  
 
    for ( i = 0; i < size; i++) 
        cout << array[i] << " ";
    cout << endl;
}
Yandex
Объявления
22.07.2012, 13:37     Найдите минимальный и максимальный элемент массива и поменяйте их местами
Ответ Создать тему
Опции темы

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