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

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

Войти
Регистрация
Восстановить пароль
 
xod
156 / 46 / 17
Регистрация: 01.07.2014
Сообщений: 185
#1

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

12.07.2014, 19:13. Просмотров 298. Ответов 4
Метки нет (Все метки)

Дано: линейный массив из 17-ти целых чисел,
числа заданы рандомно и сам массив вынесен на экран
Требуется найти максимальный элемент этого массива
и отсортировать его вправо и влево в порядке убывания
элементов. Мне кажется, что эта программа работает.
(P.S. написать было проще, чем отладить программу,
все время "вылезал из массива" - теперь я с него не слезу)
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
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <time.h>
using namespace std;
 
int main()
{
    srand(time(NULL));
    int ms[17];
    int i, j, k, l;
    for (i = 0; i < 17; i++)
            ms[i] = rand()% 17;
 
    for (i = 0; i < 17; i++)
            cout << setw(4) << ms [i] ;
 
    int max = ms[0];
    j=0;
    for (i = 1; i < 17; i++)
        if(max < ms[i]) {
            max = ms[i];
            j = i;}
 
    for (k = 0; k < j; k++)
        for (i = 0; i < j; i++)
           if(ms[i] > ms[i+1]){
              l = ms[i]; ms[i] = ms[i+1];ms[i+1] = l;}
 
    for (k = j; k < 16; k++)
        for (i = j; i < 16; i++)
           if(ms[i] < ms[i+1]){
              l = ms[i]; ms[i] = ms[i+1];ms[i+1] = l;}
 
    cout << "\n";
    for (i = 0; i < 17; i++)
            cout << setw(4) << ms [i];
 
    cout << "\n";
    system("Pause");
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2014, 19:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти максимальный элемент этого массива и отсортировать его вправо и влево в порядке убывания элементов (C++):

Первые десять элементов массива М(30) отсортировать в порядке возрастания, а остальные в порядке убывания - C++
Привет. Первые десять элементов массива М(30) отсортировать в порядке возрастания, а остальные в порядке убывания. Вот тут я сделал массив...

Найти максимальный элемент массива из его элементов с нечетными номерами - C++
Скоро экзамен , кто чем может ) Помоги ближнему , ибо смех продлевает жизнь...) 15. Дан массив A размера N. Найти максимальный...

Среди элементов массива найти максимальный элемент и его номер - C++
Координаты n векторов заданные матрицей А(n,m) (m&lt;=5, n&lt;=6). Посчитать длину этих векторов, распечатать и нанести их значения. Среди...

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

Все отрицательные элементы заданного массива L (11) разделить на максимальный элемент этого массива. Вывести максимальный элемент, начальный и преобра - C++
Помогите составить программу на С++

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

4
dimabubyakin
159 / 120 / 44
Регистрация: 16.10.2013
Сообщений: 1,738
Завершенные тесты: 5
12.07.2014, 19:55 #2
xod, если я правильно вас понял, то просто находите максимум, затем сортируете с начала массива до максимума, затем от максимума до конца массива, хоть обычной сортировкой обменами
1
xod
156 / 46 / 17
Регистрация: 01.07.2014
Сообщений: 185
12.07.2014, 20:22  [ТС] #3
Вы верно поняли. Только для вас это просто, а я
как три дня Си-программист. Знаете, после бейсика
такая путаница с последним элементом массива ...
Однако спасибо вам, что зашли в эту тему!
0
dimabubyakin
159 / 120 / 44
Регистрация: 16.10.2013
Сообщений: 1,738
Завершенные тесты: 5
12.07.2014, 20:37 #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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <time.h>
#define n 17
using namespace std;
void Sort(int *a,int p0,int p1,int dir)
{
    bool t;
    int tmp;
    do
    {
        t=false;
        for(int i=p0;i<p1-1;i++)
        if((a[i]>a[i+1] && dir==0) || (a[i]<a[i+1] && dir==1))
        {
            t=true;
            tmp=a[i];
            a[i]=a[i+1];
            a[i+1]=tmp;
        }
    }while(t);
}
int main()
{
    srand(time(NULL));
    int a[17],max,index;
    for(int i=0;i<n;i++)
    {
        a[i]=rand()%n;
        cout<<a[i]<<" ";
        if(i==0)
        {
            max=a[0];
            index=0;
        }
        if(max<a[i])
        {
            max=a[i];
            index=i;
        }
    }
    cout<<endl<<"Max = "<<max<<endl<<"Index = "<<index<<endl;
    Sort(a,0,index,0);
    Sort(a,index,n,1);
    for(int i=0;i<n;i++)
    cout<<a[i]<<" ";
    cout<<endl;
    system("pause");
    return 0;
}
1
xod
156 / 46 / 17
Регистрация: 01.07.2014
Сообщений: 185
12.07.2014, 20:57  [ТС] #5
Фантастика!!
Спасибо вам за пример!! Я тоже буду использовать функции.
Это лучший ответ!! Я даже не ожидал такого!!
Спасибо!
0
12.07.2014, 20:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2014, 20:57
Привет! Вот еще темы с ответами:

Найти максимальный элемент массива и его номер - C++
задан массив n элемнтов,найти max элемент массиваи его номер

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

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

Найти максимальный элемент массива и его порядковый номер. - C++
17.Дан массив А(4). Найти максимальный элемент массива и его порядковый номер.


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

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

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