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

Массив: Найти первый максимум в этом массиве, а затем все числа до этого элемента упорядочить по возрастанию, а после — по убыванию.

22.08.2012, 21:14. Показов 3449. Ответов 15
Метки нет (Все метки)

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

Помогите написать пожалуйста.. Очень срочно надо.. Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.08.2012, 21:14
Ответы с готовыми решениями:

В массиве A(n) удалить все отрицательные числа ,затем массив упорядочить по убыванию
В массиве A(n) удалить все отрицательные числа ,затем массив упорядочить по убыванию.

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

Упорядочить в массиве по возрастанию значений все элементы, стоящие после максимального элемента
Ввести одномерный массив X(N). Упорядочить в нем по возрастанию значений все элементы, стоящие после максимального элемента. Выдать на...

15
22.08.2012, 21:18

Не по теме:

помогите != сделайте вместо меня

1
0 / 0 / 0
Регистрация: 18.04.2012
Сообщений: 46
22.08.2012, 21:52  [ТС]
трудно помочь что ли?
0
Mobile Software Engineer
Эксперт С++
 Аватар для Ev[G]eN
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
22.08.2012, 21:53
"помочь" - нет
"написать все вместо Вас" - да
1
0 / 0 / 0
Регистрация: 18.04.2012
Сообщений: 46
22.08.2012, 21:55  [ТС]
я просто не понимаю это.. не мое это. Но сдать то надо.. Вот я и попросил помощи у знающих людей..
0
Mobile Software Engineer
Эксперт С++
 Аватар для Ev[G]eN
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
22.08.2012, 21:57
формируете массив, потом в цикле ищите максимальный элемент. нашли, записали его индекс в какую-либо переменную, у меня это как правило Index, аварийно завершили цикл с помощью break.
потом цикл for(int i = 0; i < Index; i++) и упорядочиваете по возрастанию, потом цикл for(int i = Index; i < Size(размер массива); i++) упорядочиваете по убыванию.

помог. ждем Ваши наработки.
1
0 / 0 / 0
Регистрация: 18.04.2012
Сообщений: 46
22.08.2012, 21:59  [ТС]
забыл написать, что нужно сделать с использованием под программ.
0
59 / 59 / 8
Регистрация: 29.06.2012
Сообщений: 188
22.08.2012, 22:10
мучитильный вопрос для меня "что за сдачи летом?"
0
0 / 0 / 0
Регистрация: 18.04.2012
Сообщений: 46
22.08.2012, 23:27  [ТС]
Долги...
0
 Аватар для Andrey.K
348 / 269 / 128
Регистрация: 14.11.2010
Сообщений: 482
23.08.2012, 01:17
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
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
void Input(int* mas, int n)
{
    for(int i=0;i<n;i++)
        mas[i]=rand()%100;
}
void Show(int* mas, int n)
{
    for(int i=0;i<n;i++)
        cout<<mas[i]<<" ";
    cout<<endl;
}
int Max(int* mas, int n)
{
    int max=mas[0], pos=0;
    for(int i=0;i<n;i++)
        if(mas[i]>max) { max=mas[i]; pos=i; }
    return pos;
}
void Replace(int* mas, int n, int pos)
{
    for(int i=0;i<pos-1;i++)
    {
        for(int j=i+1;j<pos;j++)
        {
            if(mas[i]>mas[j])
            {
                int temp=mas[i];
                mas[i]=mas[j];
                mas[j]=temp;
            }
        }
    }
 
    for(int i=pos;i<n;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            if(mas[i]<mas[j])
            {
                int temp=mas[i];
                mas[i]=mas[j];
                mas[j]=temp;
            }
        }
    }
}
int main()
{
    setlocale(0,"rus");
    int* mas;
    int n,pos;
    cout<<"Введите размер массива: ";cin>>n;
    mas=new int[n];
    srand((unsigned)time(NULL));
    Input(mas,n);
    Show(mas,n);
    pos=Max(mas,n);
    Replace(mas,n,pos);
    Show(mas,n);
    delete[] mas;
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 18.04.2012
Сообщений: 46
23.08.2012, 17:59  [ТС]
А если так?
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
74
75
76
77
78
79
80
81
#include<iostream>
using namespace std;
void vvodMas (double x[],int n);
int nomMax (double x[],int n);
void SortUbyv (double x[],int n,int k);
void SortVozr (double x[],int n,int k);
void print (double x[],int n);
int main ()
{
 const int n=9;
 double x[n];
 vvodMas (x,n);
 int k=nomMax(x,n);
 SortUbyv (x,n,k);
 SortVozr (x,n,k);
 print (x,n);
 return 0;
}
void vvodMas (double x[],int n)
{
 cout<<" Zadaite "<<n<<" chisel"<<endl;
 for (int i=0;i<n;i++)
 cin>>x[i];
}
void print (double x[],int n)
 {
 cout <<"massiv : ";
 for (int i=0;i<n;i++)
 cout<<x[i]<<" ";
 }
 
int nomMax (double x[],int n)
{
 int k=0;
 double max=x[0];
 for (int i=1;i<n; i++)
 if (x[i]>max)
 {
 max=x[i];
 k=i;
 }
 return k;
 
}
void SortUbyv (double x[],int n,int k)
{ int i;
 double a;
 int m=n;
 bool p;
 do {
 p=false;
 m--;
 for (i=0;i<k;i++)
 if (x[i]>x[i+1])
 {
 a=x[i];
 x[i]=x[i+1];
 x[i+1]=a;
 p=true;
 }
}while (p);
}
void SortVozr (double x[],int n,int k)
{
 int i;
 double a;
 int m=n;
 bool p;
 do {
 p=false;
 m--;
 for (i=k+1;i<n;i++)
 if (x[i+1]>x[i])
 {
 a=x[i];
 x[i]=x[i+1];
 x[i+1]=a;
 p=true;
 }
}while (p);
}
0
 Аватар для zitxbit
96 / 748 / 279
Регистрация: 11.04.2012
Сообщений: 971
23.08.2012, 18:28
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
#define N 20
 
void swap(int& n1, int& n2);
 
void sort(int* pn, int start, int end, bool desc = false)
{
    for (int i = start; i <= end; i++)
    {
        int m = i;
        for (int q = i+1; q <= end; q++)
            m = (!desc) ? ((pn[q] > pn[m]) ? q : m) : 
                ((pn[q] < pn[m]) ? q : m);
 
        swap(pn[i],pn[m]);
    }
}
 
void swap(int& n1, int& n2)
 { int _tn = n1; n1 = n2; n2 = _tn; }
 
int main()
{
    int* A = new int[N];
    for (int x = 0; x < N; x++)
    {
        A[x] = rand() % 9 + 1;
        printf("%d ",A[x]);
    }
 
    int max = 0;
    for (int i = 0; i < N; i++)
        max = (A[i] > A[max]) ? i : max;
 
    printf("\nmax = %d A[max] = %d\n\n",max,A[max]);
 
    int pos = 0; 
    while (A[pos] != A[max]) pos++;
 
    sort(A, 0, pos-1, true);
    sort(A, pos+1, N-1, false);
 
    for (int q = 0; q < N; q++)
        printf("%d ",A[q]);
    printf("\n");
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/... 19cc6f4d8c
Миниатюры
Массив: Найти первый максимум в этом массиве, а затем все числа до этого элемента упорядочить по возрастанию, а после — по убыванию.  
0
Эксперт С++
 Аватар для nameless
342 / 306 / 36
Регистрация: 16.06.2009
Сообщений: 486
23.08.2012, 20:48
Как вариант решения

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#include <iostream>
 
#include <boost/mpl/vector.hpp>
#include <boost/mpl/max_element.hpp>
#include <boost/mpl/for_each.hpp>
#include <boost/mpl/sort.hpp>
#include <boost/mpl/less.hpp>
#include <boost/mpl/greater.hpp>
#include <boost/mpl/copy.hpp>
#include <boost/mpl/back_inserter.hpp>
 
namespace mpl = boost::mpl;
 
struct PrintSeq {
   template <typename T>
   void operator()(T val) {
      std::cout << val << " ";
   }
};
 
template <typename Seq>
struct MaxElement {
   typedef typename
      mpl::max_element <
         Seq
      >::type type;
};
 
template <typename Seq, typename First, typename Last>
struct GenerateSeq {
   typedef typename
      GenerateSeq <
         typename mpl::push_back <
            Seq,
            mpl::int_<
               mpl::deref <First>::type::value
            >
         >::type,
         typename mpl::next <First>::type,
         Last
      >::type type;
};
 
template <typename Seq, typename Last>
struct GenerateSeq <Seq, Last, Last> {
   typedef Seq type;
};
 
template <typename Seq>
struct ChangeSeq {
   typedef typename
      GenerateSeq <
         mpl::vector <>,
         typename mpl::begin <Seq>::type,
         typename mpl::next <
            typename mpl::max_element <
               Seq
            >::type
         >::type
      >::type v_start;
      
   typedef typename
      GenerateSeq <
         mpl::vector <>,
         typename mpl::next <
            typename mpl::max_element <
               Seq
            >::type
         >::type,
         typename mpl::end <Seq>::type
      >::type v_end;
};
 
template <typename Seq, typename Cmp = mpl::greater <mpl::_1, mpl::_2>>
struct SortSeq {
   typedef typename
      mpl::sort <
         Seq,
         Cmp
      >::type sort_seq;
};
 
template <typename SeqFirst, typename SeqSecond>
struct Concatenate {
   typedef typename
      mpl::copy <
         SeqSecond,
         mpl::back_inserter <
            SeqFirst
         >
      >::type v_concat;
};
 
int main() {
   typedef mpl::vector <
      mpl::int_ <-2>,
      mpl::int_ <10>,
      mpl::int_ <5>,
      mpl::int_ <13>,
      mpl::int_ <-1>,
      mpl::int_ <13>,
      mpl::int_ <2>,
      mpl::int_ <5>,
      mpl::int_ <1>,
      mpl::int_ <11>
   > v_numbers;
   
   mpl::for_each <
      Concatenate <
         SortSeq <
            ChangeSeq <
               v_numbers
            >::v_start,
            mpl::less <mpl::_1, mpl::_2>
         >::sort_seq,
         SortSeq <
            ChangeSeq <
               v_numbers
            >::v_end,
            mpl::greater <mpl::_1, mpl::_2>
         >::sort_seq
      >::v_concat
   >(PrintSeq());    
}
http://liveworkspace.org/code/... cb067dbb39

Добавлено через 18 минут

Не по теме:

Как же я люблю boost..

1
Фрилансер
Эксперт С++
 Аватар для Dekio
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,375
Записей в блоге: 1
24.08.2012, 22:04
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <algorithm>
#include <vector>
 
int main()
{
    std::vector <int> vec = {8, 22, 11, 7, 8, 3, 25, 14, 3, 9, 11, 19, 1};
    std::sort(vec.begin(), std::max_element(vec.begin(), vec.end()), std::less <int> ());
    std::sort(std::max_element(vec.begin(), vec.end()), vec.end(), std::greater <int> ());
    for(auto &i: vec)
        std::cout<<i<<" ";
    return 0;
}
http://liveworkspace.org/code/... 2faec3b5fa
3
25.08.2012, 09:50

Не по теме:

Цитата Сообщение от Dekio Посмотреть сообщение
C++
1
2
for(auto &i: vec)
 std::cout<<i<<" ";
Можете объяснить, что это и почему это работает?

0
Фрилансер
Эксперт С++
 Аватар для Dekio
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,375
Записей в блоге: 1
25.08.2012, 12:10
Лучший ответ Сообщение было отмечено как решение

Решение

Это С++'11
http://ru.wikipedia.org/wiki/C... 0.B8.D0.B8
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.08.2012, 12:10
Помогаю со студенческими работами здесь

Дан массив a[10]. Найти минимальный элемент и упорядочить элемента по убыванию после минимального элемента
Дан массив a. Найти минимальный элемент и упорядочить элемента по убыванию после минимального элемента.

Найти все простые числа в массиве и упорядочить их по возрастанию
Найти все простые числа в массиве и упорядочить их по возрастанию

Объединить массивы: разместить в новый массив сначала первый по убыванию, затем второй по возрастанию
Прошу расписать задачу полностью (от вара до энда) в рамках 7-ого класса. Спасибо! 1) Объединить массивы А и В так, чтобы сначала...

Массив состоит из целых чисел, упорядочить его элементы, расположить по убыванию, а затем отрицательные по возрастанию
3.Массив состоит из целых чисел, упорядочить его элементы, расположить по убыванию, а затем отрицательные по возрастанию.

Поменять местами максимум и мининум в массиве и упорядочить массив по возрастанию
Помогите пожалуйста решить задачи 1)Найти максимум в массиве 2)Найти минимум в массиве 3)Поменять местами максимум и мининум в...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru