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

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

30.10.2011, 20:38. Показов 4495. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите разобраться Дан массив целых чисел. Найти в нем максимальный и минимальный элементы и поменять их местами. Задать размерность массива и организовать ввод массива с клавиатуры. Реализовать с помощью функций


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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2011, 20:38
Ответы с готовыми решениями:

Найти в массиве минимальный и максимальный элементы и поменять их местами
Помогите пожалуйста, пришёл с армии восстановился забыл многое Найти в массиве G минимальный и ...

Найти в массиве максимальный и минимальный элементы и поменять их местами
uses crt; var min,max,z:integer; procedure minmax(var min,max:integer); var a:array of integer;...

Найти и поменять местами максимальный и минимальный элементы в массиве
Всем привет! У меня тут возникла проблема с выполнением задания, сама не справляюсь :( Задание:...

Найти в целочисленном массиве минимальный и максимальный элементы и поменять их местами
Найти в целочисленном массиве минимальный и максимальный элементы и поменять их местами.

3
167 / 166 / 46
Регистрация: 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
Фрилансер
Эксперт С++
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,375
Записей в блоге: 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
1 / 1 / 0
Регистрация: 18.09.2011
Сообщений: 12
30.10.2011, 21:47  [ТС] 4
Спасибо большое вам !!
0
30.10.2011, 21:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2011, 21:47
Помогаю со студенческими работами здесь

Найти в массиве максимальный и минимальный элементы по модулю и поменять их местами
Вот решаю задачу по Си++, но так как дома среды разработки такой нет , то решаю задачу по Си......

В массиве целых чисел найти минимальный и максимальный элементы и поменять их местами
помогите пожалуйста написать это на C В массиве целых чисел найти Минимальный и максимальный...

В массиве целых чисел найти минимальный и максимальный элементы и поменять их местами
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;malloc.h&gt; #include &lt;stdlib.h&gt; int main() {...

Найти минимальный и максимальный элементы в массиве, поменять их местами (код не всегда работает)
Найти мини и максим элементы в массиве, поменять их местами меняет не всегда, работает в небольших...


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

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