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

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

Войти
Регистрация
Восстановить пароль
 
Azael
1 / 1 / 0
Регистрация: 18.09.2011
Сообщений: 12
#1

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

30.10.2011, 20:38. Просмотров 588. Ответов 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include<iostream>
using namespace std;
void Input(int* a, int n)   //функция ввода массива
{
 for ( i = 0; i < n; i++)
{
   cout << "\n a[" << i << "]= ";
    cin >> a[i];
}
}
 
 void Output(int* a, int n) //функция вывода массива
{
 for ( i= 0; i < n; i++)
      {
          cout << a[i]<< " ";
      }
 cout << "\n";
}
int Max(int* a, int n, int &imax)   //функция поиска максимума в массиве
{
 int i, max;
 max=a[0]; imax=0;
 for (i = 1; i < n; i++)
    if (a[i] > max)  
{
 max=a[i]; imax=i;
 }
 return max;
}
int Min(int* a, int n, int &imin)       //функция поиска минимума в массиве
{
int i, min;
min=a[0]; imin=0;
for (i=1; i<n; i++)
    if (a[i]<min)  
{
 min=a[i]; imin=i;
 }
return min;
}
 
void main()
{
 int* a;
 int i, n, max, min, imax, imin;
 cout<< "n= ";
 cin >> n;
 
a = new int[n];
 Input(a, n);
 
 cout << "massiv:"<<endl;
 cou t<< "\n";
 
Output(a, n);
 
max = Max(a, n, imax);
min = Min(a, n, imin);
 
 cout << ” \n max =<< max << ”imax =<< imax;
 cout << ” \n min =<< min << ”imin =<< imin;
 
 a[imax] = min; a[imin] = max;  //обмен максимума и минимума
 
 cout << "\n New massiv: ";
 Output(a, n);
 
 cout << endl;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2011, 20:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти в массиве максимальный и минимальный элементы и поменять их местами (C++):

Поменять местами максимальный и минимальный элементы в массиве - C++
помогите пожалуйста, никак не получаются задачки... 2) Записать элементы массива Х, удовлетворяющие условию 1≤Xi≤2, подряд в массив Y....

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

В массиве целых чисел поменять местами минимальный и максимальный элементы - C++
Одномерный массив-Вычислить среднее арифметическое элементов массива Х, расположенных между его минимальным и максимальным значениями. Если...

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

В массиве целых чисел поменять местами минимальный и максимальный элементы - C++
Эту задачу можно как нибудь упростить? #include &lt;stdio.h&gt; #define N 3 #define M 3 struct index{ int i; int j; ...

Функция: в заданном массиве поменять местами максимальный и минимальный элементы (Dev-С++) - C++
Здравствуйте, нужно помочь решить задачу, вот условие : Написать функцию, которая в заданном массиве А меняет местами максимальный и...

3
Rexer
163 / 162 / 20
Регистрация: 10.10.2010
Сообщений: 725
30.10.2011, 21:02 #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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include<iostream>
using namespace std;
int * Input(int* a, int n)       //функция ввода массива
{
 for (int i = 0; i < n; i++)
{
   cout << "\n a[" << i << "]= ";
        cin >> a[i];
}
return a;
}
 
 void Output(int* a, int n)     //функция вывода массива
{
 for (int i= 0; i < n; i++)
          {
              cout << a[i]<< " ";
          }
 cout << "\n";
}
int Max(int* a, int n, int &imax)       //функция поиска максимума в массиве
{
 int i, max;
 max=a[0]; imax=0;
 for (i = 1; i < n; i++)
        if (a[i] > max)
{
 max=a[i]; imax=i;
 }
 return max;
}
int Min(int* a, int n, int &imin)               //функция поиска минимума в массиве
{
int i, min;
min=a[0]; imin=0;
for (i=1; i<n; i++)
        if (a[i]<min)
{
 min=a[i]; imin=i;
 }
return min;
}
 
int main()
{
 int i, n, max, min, imax, imin;
 cout<< "n= ";
 cin >> n;
 
 int* a = new int[n];
 
 
 a = Input(a, n);
 
 cout << "massiv:"<<endl;
 cout<< "\n";
 
Output(a, n);
 
max = Max(a, n, imax);
min = Min(a, n, imin);
 
 cout << " \n max = " << max << "imax = "<< imax;
 cout << " \n min = " << min << "imin = "<< imin;
 
 a[imax] = min; a[imin] = max;  //обмен максимума и минимума
 
 cout << "\n New massiv: ";
 Output(a, n);
 
 cout << endl;
 return 0;
}
Ошибки у вас в основном были на то,Что не ясно что такое i в функицях,скобки должны быть такие
C++
1
""
, ну и можно было не менять функцию ввода массива,но я так привык.
А,ну и постарайтесь не создавать таких строчек int*a;
Лучше сразу присваивать указателю что-нибудь.
И в дальнейшем постарайтесь не использовать using namespace std;
А писать можно так,например
C++
1
std::cout << "" <<std::endl;
1
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
30.10.2011, 21:11 #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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include<iostream>
using namespace std;
void Input(int* a, int n)       //ГґГіГ*êöèÿ ââîäГ* Г¬Г*Г±Г±ГЁГўГ*
{
 for (int i = 0; i < n; i++)
{
   cout << "\n a[" << i << "]= ";
        cin >> a[i];
}
}
 
 void Output(int* a, int n)     //ГґГіГ*êöèÿ âûâîäГ* Г¬Г*Г±Г±ГЁГўГ*
{
 for (int i= 0; i < n; i++)
          {
              cout << a[i]<< " ";
          }
 cout << "\n";
}
int Max(int* a, int n, int &imax)       //ГґГіГ*êöèÿ ïîèñêГ* Г¬Г*êñèìóìГ* Гў Г¬Г*Г±Г±ГЁГўГҐ
{
 int i, max;
 max=a[0]; imax=0;
 for (i = 1; i < n; i++)
        if (a[i] > max)  
{
 max=a[i]; imax=i;
 }
 return max;
}
int Min(int* a, int n, int &imin)               //ГґГіГ*êöèÿ ïîèñêГ* ìèГ*èìóìГ* Гў Г¬Г*Г±Г±ГЁГўГҐ
{
int i, min;
min=a[0]; imin=0;
for (i=1; i<n; i++)
        if (a[i]<min)  
{
 min=a[i]; imin=i;
 }
return min;
}
 
int main()
{
 int* a;
 int i, n, max, min, imax, imin;
 cout<< "n= ";
 cin >> n;
 
a = new int[n];
 Input(a, n);
 
 cout << "massiv:"<<endl;
 cout<< "\n";
 
Output(a, n);
 
max = Max(a, n, imax);
min = Min(a, n, imin);
 
 cout << " \n max = " << max << "imax = "<< imax;
 cout << " \n min = " << min << "imin = "<< imin;
 
 a[imax] = min; a[imin] = max;  //îáìåГ* Г¬Г*êñèìóìГ* ГЁ ìèГ*èìóìГ*
 
 cout << "\n New massiv: ";
 Output(a, n);
 
 cout << endl;
 system("pause");
}
Но я бы сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
 
int main()
{
    std::vector<int> vec;
    int num;
    while(std::cin>>num)
    vec.push_back(num);
    std::iter_swap(std::min_element(vec.begin(),vec.end()),std::max_element(vec.begin(),vec.end()));
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    std::cout<<std::endl;
    system("pause");
    return 0;
}
1
Azael
1 / 1 / 0
Регистрация: 18.09.2011
Сообщений: 12
30.10.2011, 21:47  [ТС] #4
Спасибо большое вам !!
0
30.10.2011, 21:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2011, 21:47
Привет! Вот еще темы с ответами:

В двумерном массиве размерностью nxm поменять местами минимальный и максимальный элементы каждой строки - C++
В двумерном массиве размерностью nxm поменять местами минимальный и максимальный элементы каждой строки.

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

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

Найти максимальный и минимальный элементы массива S(n) и поменять их местами - C++
написать на С++) и + блок-схемы(время неи денег нет а проги надо написать помогите кно нить) 1. Найти максимальный и минимальный...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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