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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Hrustik
2 / 2 / 0
Регистрация: 29.05.2013
Сообщений: 143
#1

Одномерный массив. Поменять местами минимальный и максимальный элемент - C++

14.06.2013, 16:32. Просмотров 1704. Ответов 10
Метки нет (Все метки)

Дан одномерный массив C, который состоит из 16 элементов.Поменять местами минимальный и максимальный элемент.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2013, 16:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Одномерный массив. Поменять местами минимальный и максимальный элемент (C++):

Поменять местами максимальный элемент и первый, используя одномерный массив - C++
Здравствуйте, искал на форуме нашел частичные данные, которые не могу даже нормально соединить, помогите "поменять местами максимальный...

Одномерный массив (элементы с четными индексами переписать в массив z.в массиве z поменять местами максимальный и минимальный элементы) - C++
задан массив x(n).элементы с четными индексами переписать в массив z.в массиве z поменять местами максимальный и минимальный...

В двумерном массиве поменять местами максимальный и минимальный элемент местами - C++
Написать фрагмент программы для решения следующей задачи.В двумерном массиве поменять местами максимальный и минимальный элемент местами....

Поменять местами минимальный и максимальный элемент - C++
Помогите сделать задачу, не понимаю как делать. Создать стек из случайных чисел и поменять местами минимальный и максимальный элементы....

Массивы: поменять местами минимальный по модулю элемент и максимальный отрицательный элемент - C++
Пусть А одномерный массив N-целых чисел. Ввести его случайным образом. а) поменять местами минимальный по модулю элемент и максимальный...

Найти в массиве максимальный элемент и минимальный элемент, и поменять их местами - C++
Привет) помогите пожалуйста решить задачу. Дан целочисленный массив из m элементов. Найдите в нем максимальный элемент и минимальный...

10
GetVariable
163 / 119 / 5
Регистрация: 17.03.2013
Сообщений: 283
14.06.2013, 16:34 #2
пробегаем массив, находим позицию минимального и максимального элемента. дальше используем std::swap(c[pos_min], c[pos_max];
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,019
14.06.2013, 17:05 #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
#include <iostream>
#include <algorithm>
#include <numeric>
#include <utility>
#include <cstddef>
#include <array>
 
int main()
{
    const std::size_t N = 16;
    std::array<int, N> a;
    std::iota(a.begin(), a.end(), 10);
    std::random_shuffle(a.begin(), a.end());
    std::cout << "Before: ";
    for (auto &x : a)
        std::cout << x << " ";
 
    auto p = std::minmax_element(a.begin(), a.end());
    std::swap(*p.first, *p.second);
 
    std::cout << "\nAfter:  ";
    for (auto &x : a)
        std::cout << x << " ";
}
0
Hrustik
2 / 2 / 0
Регистрация: 29.05.2013
Сообщений: 143
14.06.2013, 17:55  [ТС] #4
Цитата Сообщение от GetVariable Посмотреть сообщение
пробегаем массив, находим позицию минимального и максимального элемента. дальше используем std::swap(c[pos_min], c[pos_max];
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
#include <iostream.h>
#include <string>
#include <conio.h>
 
using std::cout;
using std::cin;
using std::endl;
 
int main()
{    
int arr[16];
        for (int i = 0; i < 16; i++) {
            cout << "C[" << i + 1 << "]" << "= ";
            cin >> arr[i];
 }
 int min=arr[0],max=arr[0];
     for (int i=1;i<16;i++){
     if (min>arr[i])
      min=arr[i];
       if (max<arr[i])
        max=arr[i];
}
cout<<"min="<<min<<"  max="<<max;
getch ();
 
}
как теперь сделать чтобы меняло местами мин и макс?
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.06.2013, 17:57 #5
добавьте такие строки
C++
1
2
3
4
5
for (int i=0;i<16;i++)
   if (min==arr[i])
      arr[i] = max;
   else if (max==arr[i])
      arr[i] = min;
0
Hrustik
2 / 2 / 0
Регистрация: 29.05.2013
Сообщений: 143
14.06.2013, 18:45  [ТС] #6
Цитата Сообщение от Thinker Посмотреть сообщение
добавьте такие строки
C++
1
2
3
4
5
for (int i=0;i<16;i++)
   if (min==arr[i])
      arr[i] = max;
   else if (max==arr[i])
      arr[i] = min;
ничего нового не произошло

Добавлено через 39 минут
Цитата Сообщение от Thinker Посмотреть сообщение
добавьте такие строки
C++
1
2
3
4
5
for (int i=0;i<16;i++)
   if (min==arr[i])
      arr[i] = max;
   else if (max==arr[i])
      arr[i] = min;
можете уточнить куда вставлять ети строки?я вставил после цикла поиска макс и мин елемента и ничего не поменялося так все и выводит
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.06.2013, 18:55 #7
Цитата Сообщение от Hrustik Посмотреть сообщение
я вставил после цикла поиска макс и мин елемента и ничего не поменялося так все и выводит
да, после этого цикла. а потом надо вывести весь массив на экран
0
Genn55
368 / 215 / 41
Регистрация: 26.12.2012
Сообщений: 708
14.06.2013, 20:44 #8
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
#include <iostream>
using namespace std;
int main()
{
const int n = 16;
int arr[n] = {10,15,3,4,2,6,7,8,9,5,16,21,900,25,34,22};
for(int i=0; i<n; i++)
  cout << arr[i] << " ";
  cout<<"\n\n";
int min=arr[0],max=arr[0];
for (int i=0;i<n;i++)
{
if (min>arr[i])
    min=arr[i];
if (arr[i]>max)
    max=arr[i];
}
for (int i=0;i<n;i++)
   if (min==arr[i])
      arr[i] = max;
   else if (max==arr[i])
      arr[i] = min;
for(int i=0; i<n; i++)
  cout << arr[i] << " ";
   cout<<"\n\n";
  cout<<"min="<<min<<" max="<<max<<"\n";
return 0;
}
0
Hrustik
2 / 2 / 0
Регистрация: 29.05.2013
Сообщений: 143
14.06.2013, 22:13  [ТС] #9
Genn55, почему программа после открытия сразу закрывается вставил вниз system("pause") не помогло
0
Genn55
368 / 215 / 41
Регистрация: 26.12.2012
Сообщений: 708
14.06.2013, 22:19 #10
У меня кодеблок в студии наверное нужно
C++
1
2
#include <string>
#include <conio.h>
и в конце

C++
1
getch ();
но в студии я не работал.
0
Bezzol
0 / 0 / 0
Регистрация: 08.10.2014
Сообщений: 4
08.10.2014, 14:18 #11
]В Visual Studio 2013 все работает на ура.
Я только начал изучать С++
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
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
 
int main()
{
    const int n = 16;
    int arr[n] = { 10, 15, 3, 4, 2, 6, 7, 8, 9, 5, 16, 21, 900, 25, 34, 22 };
    for (int i = 0; i<n; i++)
        cout << arr[i] << " ";
    cout << "\n\n";
    int min = arr[0], max = arr[0];
    for (int i = 0; i<n; i++)
    {
        if (min>arr[i])
            min = arr[i];
        if (arr[i]>max)
            max = arr[i];
    }
    for (int i = 0; i<n; i++)
    if (min == arr[i])
        arr[i] = max;
    else if (max == arr[i])
        arr[i] = min;
    for (int i = 0; i<n; i++)
        cout << arr[i] << " ";
    cout << "\n\n";
    cout << "min=" << min << " max=" << max << "\n";
    //---------------------------
    int tmp;
    for (int i = 0; i < n; i++)       // фильтруем массив
    for (int j = n - 1; j > i; j--)
        if (arr[j - 1] < arr[j])
    {
        tmp = arr[j - 1]; arr[j - 1] = arr[j]; arr[j] = tmp;
    }
    cout << "\n" ; // и выводим его на экран.
    for (int i = 0; i<n; i++)
        cout << "\n" << arr[i];
    cout << endl;
    system("PAUSE");
    return 0;
}
Вот тут сортировка одномерного массива действительных чисел методом пузырька (по убыванию), если я правильно все сделал. Подскажите, пожалуйста, чего не хватает в супе и как сделать, что бы сортированный массив записывался в строку?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2014, 14:18
Привет! Вот еще темы с ответами:

Поменять местами минимальный элемент с первым элементом массива, а максимальный элемент с последним - C++
Здравствуйте. Помогите пожалуйста написать программу: для поиска минимального и максимального элементов массива из 15 действительных чисел....

Поменять местами максимальный и минимальный элемент матрицы - C++
Здравствуйте. Задача вроде бы простая, но у меня возникло затруднение. Искал подобные, но свою ошибку увидеть не могу в упор. Суть...

Поменять местами максимальный и минимальный элемент массива - C++
из элементов массива надо поменять местами самого большого и самого маленького элемента

Поменять местами максимальный и минимальный элемент в массиве - C++
дан массив 4 на 4 в каждой строке поменять местами максимальный и минимальный элемент


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
08.10.2014, 14:18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru