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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
#1

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

02.03.2012, 22:23. Просмотров 1756. Ответов 21
Метки нет (Все метки)

Дан массив А(40). Найти минимальный элемент массива, упорядочить элементы, расположенные до этого элемента по убыванию алгоритмом быстрой сортировки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2012, 22:23     Найти минимальный элемент массива, упорядочить элементы
Посмотрите здесь:

Найти минимальный элемент массива и упорядочить все элементы левее его по убыванию, а правее – по возрастанию - C++
Реализовать функцию для обработки массива целых чисел. Функция находит минимальный элемент массива и сортирует все элементы левее его по...

Записать элементы массива X, удовлетворяющие условию в массив Y; найти минимальный элемент массива X - C++
4. Записать элементы массива X, удовлетворяющие условию Х, подряд в массив Y =. Определить минимальный элемент массива X.

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

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

В массиве Х (N) найти максимальный элемент массива и упорядочить по возрастанию все элементы - C++
написать программу на языке С++. Задание: В массиве Х (N) найти максимальный элемент массива и упорядочить по возрастанию все элементы,...

Найти минимальный элемент заданного массива и заменить им чётные по номеру элементы - C++
Доброго времени суток, вот условие задачи: Найти минимальный элемент массива Т и заменить им четные по номеру элементы. Никак не могу...

Найти минимальный положительный элемент массива, все элементы, начинающиеся с цифры 1, заменить на обратные - C++
найти минимальный положительный элемент массива, все элементы начинающиеся с цифры 1 заменить на их обратные изображения(123 перевернуть в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
02.03.2012, 22:42     Найти минимальный элемент массива, упорядочить элементы #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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
 
int min_pos(const int *, int, int);
int compare(const void *a, const void *b)
{
    return *(int*)b - *(int*)a;
}
 
int main()
{
    int m[40];
 
    srand(time(NULL));
 
    for(int i = 0; i < 40; i++)
    {
        m[i] = rand() % 50;
        std::cout << m[i] << ' ';
    }
 
    std::cout << std::endl;
 
    qsort(m,min_pos(m,1,m[0]),sizeof(int),compare);
 
    for(int i = 0; i < 40; i++)
        std::cout << m[i] << ' ';
 
    std::cout << std::endl;
 
    return 0;
}
 
int min_pos(const int *m, int step, int min)
{
    if(step < 40)
        return min_pos(m,step+1,m[step] < m[min] ? step : min);
    else
        return min;
}
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
02.03.2012, 22:50  [ТС]     Найти минимальный элемент массива, упорядочить элементы #3
R136a1, можешь описать свою команду
p.s.сказать что каждое определение означает?
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
02.03.2012, 22:55     Найти минимальный элемент массива, упорядочить элементы #4
Цитата Сообщение от aidoqa Посмотреть сообщение
R136a1, можешь описать свою команду
p.s.сказать что каждое определение означает?
про qsort подробно написано здесь. Лучше конкретно спросите, какую конструкцию вы не понимаете
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
02.03.2012, 22:55  [ТС]     Найти минимальный элемент массива, упорядочить элементы #5
или чу чуть по проще ее можно сделать?
просто мы еще не все прошли)то что у вас написано я на врядли смогу обьяснить)
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
02.03.2012, 23:09     Найти минимальный элемент массива, упорядочить элементы #6
Цитата Сообщение от aidoqa Посмотреть сообщение
или чу чуть по проще ее можно сделать?
просто мы еще не все прошли)то что у вас написано я на врядли смогу обьяснить)
Ну например вы можете явно инициализировать массив 40 элементами (если rand() srand() не проходили). Поиск индекса с минимальным элементом сделать через итерацию можно. Вот в принципе и всё. Не знаю как проще ещё сделать
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 <iostream>
#include <cstdlib>
 
int min_pos(const int *);
int compare(const void *a, const void *b)
{
        return *(int*)b - *(int*)a;
}
 
int main()
{
        int m[40] = {/*значения*/};
 
 
        for(int i = 0; i < 40; i++) // вывод исходного массива
                std::cout << m[i] << ' ';
 
        std::cout << std::endl;
 
        qsort(m,min_pos(m),sizeof(int),compare); // сортировка
 
        for(int i = 0; i < 40; i++) // вывод отсортрованного массива
                std::cout << m[i] << ' ';
 
        std::cout << std::endl;
 
        return 0;
}
 
int min_pos(const int *m)
{
    int min = m[0];
    int min_index = 0;
 
        for(int i = 1; i < 10; i++)
        if(m[i] < min)
        {
            min = m[i];
            min_index = i;
        }
 
        return min_index;
}
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
04.03.2012, 12:02  [ТС]     Найти минимальный элемент массива, упорядочить элементы #7
Программа выдает всегда почему то нули.
можно ли ее сделать без std::, qsort,sizeof
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
04.03.2012, 13:00     Найти минимальный элемент массива, упорядочить элементы #8
Цитата Сообщение от aidoqa Посмотреть сообщение
можно ли ее сделать без std::
Можно, после объявления хидеров напишите using namespace std;
Цитата Сообщение от aidoqa Посмотреть сообщение
qsort,sizeof
Ну у вас же задание
Цитата Сообщение от aidoqa Посмотреть сообщение
по убыванию алгоритмом быстрой сортировки
qsort это библиотечная функция быстрой сортировки. Хотя, вы можете написать свою версию, без sizeof - Алгоритмы сортировок
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
04.03.2012, 13:05  [ТС]     Найти минимальный элемент массива, упорядочить элементы #9
R136a1,ясно, почему тогда при компеляци она выдает нули?
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
04.03.2012, 13:06     Найти минимальный элемент массива, упорядочить элементы #10
Цитата Сообщение от aidoqa Посмотреть сообщение
R136a1,ясно, почему тогда при компеляци она выдает нули?
покажите код, который компилируете
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
04.03.2012, 13:43  [ТС]     Найти минимальный элемент массива, упорядочить элементы #11
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 <cstdlib>
#include "conio.h"
 
int min_pos(const int *);
int compare(const void *a, const void *b)
{
        return *(int*)b - *(int*)a;
}
 
int main()
{
        int m[40] = {/*Г§Г*Г*Г·ГҐГ*ГЁГї*/};
 
 
        for(int i = 0; i < 40; i++) // âûâîä èñõîäГ*îãî Г¬Г*Г±Г±ГЁГўГ*
                std::cout << m[i] << ' ';
 
        std::cout << std::endl;
 
        qsort(m,min_pos(m),sizeof(int),compare); // ñîðòèðîâêГ*
 
        for(int i = 0; i < 40; i++) // âûâîä îòñîðòðîâГ*Г*Г*îãî Г¬Г*Г±Г±ГЁГўГ*
                std::cout << m[i] << ' ';
 
        std::cout << std::endl;
 getch();
        return 0;
}
 
int min_pos(const int *m)
{
        int min = m[0];
        int min_index = 0;
 
        for(int i = 1; i < 10; i++)
                if(m[i] < min)
                {
                        min = m[i];
                        min_index = i;
                }
 
        return min_index;
}
Миниатюры
Найти минимальный элемент массива, упорядочить элементы  
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
04.03.2012, 18:15  [ТС]     Найти минимальный элемент массива, упорядочить элементы #12
в чем ошибка?
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
04.03.2012, 18:33     Найти минимальный элемент массива, упорядочить элементы #13
Цитата Сообщение от aidoqa Посмотреть сообщение
в чем ошибка?
в 13 строчке в фигурных скобках вместо /*значения*/ нужно ввести 40 цифр через запятую
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
04.03.2012, 18:35  [ТС]     Найти минимальный элемент массива, упорядочить элементы #14
вот я даю)
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
04.03.2012, 21:30  [ТС]     Найти минимальный элемент массива, упорядочить элементы #15
кажиться он не выполняет опеределенных функций(или числа надо написать в разброс?)все остается без изменений.
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 <cstdlib>
#include "conio.h"
 
int min_pos(const int *);
int compare(const void *a, const void *b)
{
        return *(int*)b - *(int*)a;
}
 
int main()
{
        int m[40] = {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};
 
 
        for(int i = 0; i < 40; i++) // вывод исходного массива
                std::cout << m[i] << ' ';
 
        std::cout << std::endl;
 
        qsort(m,min_pos(m),sizeof(int),compare); // сортировка
 
        for(int i = 0; i < 40; i++) // вывод отсортрованного массива
                std::cout << m[i] << ' ';
 
        std::cout << std::endl;
 getch();
        return 0;
}
 
int min_pos(const int *m)
{
        int min = m[0];
        int min_index = 0;
 
        for(int i = 1; i < 10; i++)
                if(m[i] < min)
                {
                        min = m[i];
                        min_index = i;
                }
 
        return min_index;
}
Миниатюры
Найти минимальный элемент массива, упорядочить элементы  
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
05.03.2012, 00:27     Найти минимальный элемент массива, упорядочить элементы #16
Цитата Сообщение от aidoqa Посмотреть сообщение
кажиться он не выполняет опеределенных функций(или числа надо написать в разброс?)все остается без изменений.
Цитата Сообщение от aidoqa Посмотреть сообщение
Дан массив А(40). Найти минимальный элемент массива, упорядочить элементы, расположенные до этого элемента по убыванию алгоритмом быстрой сортировки.
В вашем случае минимальный элемент 1. Результат программы, думаю очевиден
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
05.03.2012, 04:09  [ТС]     Найти минимальный элемент массива, упорядочить элементы #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
  #include <iostream>
#include <cstdlib>
#include "conio.h"
 
int min_pos(const int *);
int compare(const void *a, const void *b)
{
        return *(int*)b - *(int*)a;
}
 
int main()
{
        int m[40] = {22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,8,9,10,11,12,13,14,15,16,17,18,19,20,21,50,83,95,42,16,85,28};
 
 
        for(int i = 0; i < 40; i++) // âûâîä èñõîäГ*îãî Г¬Г*Г±Г±ГЁГўГ*
                std::cout << m[i] << ' ';
 
        std::cout << std::endl;
 
        qsort(m,min_pos(m),sizeof(int),compare); // ñîðòèðîâêГ*
 
        for(int i = 0; i < 40; i++) // âûâîä îòñîðòðîâГ*Г*Г*îãî Г¬Г*Г±Г±ГЁГўГ*
                std::cout << m[i] << ' ';
 
        std::cout << std::endl;
 getch();
        return 0;
}
 
int min_pos(const int *m)
{
        int min = m[0];
        int min_index = 0;
 
        for(int i = 1; i < 10; i++)
                if(m[i] < min)
                {
                        min = m[i];
                        min_index = i;
                }
 
        return min_index;
}
Миниатюры
Найти минимальный элемент массива, упорядочить элементы  
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
05.03.2012, 16:28  [ТС]     Найти минимальный элемент массива, упорядочить элементы #18
да этого вроде работала сейчас нет что ли.
или я ввожу что то нето?
-=ЮрА=-
Заблокирован
Автор FAQ
05.03.2012, 18:27     Найти минимальный элемент массива, упорядочить элементы #19
aidoqa, вот мой взгляд на проблемму(раньше выложить код не вышло)
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 <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    int i, j;
    int A[40];//ГЌГ*Гё Г¬Г*Г±Г±ГЁГў
    int imin;//Áóäåò ñîäåðæГ*ГІГј Гў Г±ГҐГЎГҐ ГЁГ*äåêñ ìèГ* ýëåìåГ*ГІГ*
    int ibuf;;//ГЎГіГґГґГҐГ°Г*Г*Гї ïåðåìåГ*Г*Г*Гї
    time_t t;
    srand(time(&t));
    for(imin = (i = 0); i < 40; i++)
    {
        //Г‡Г*ïîëГ*ГїГҐГ¬ Г¬Г*Г±Г±ГЁГў Г·ГЁГ±Г«Г*ìè îò -50 äî 50
        cout<<(A[i] = rand()%100 - 50)<<" ";
        //ГЏГ*Г°Г*ëåëüГ*Г® Г± ГЈГҐГ*ГҐГ°Г*öèåé ГЁ âûâîäîì ГЁГ№ГҐГ¬ ìèГ* ýëåìåГ*ГІ
        if(A[i] < A[imin]) 
            imin = i;
    }
    cout<<endl;
    cout<<"index of min element : "<<imin<<endl;
    cout<<"value of min element : "<<A[imin]<<endl;
    //ÑîðòèðîâêГ* ïðÿìûì âûáîðîì
    for(i = 0    ; i < imin; i++)
    for(j = i + 1; j < imin; j++)
    {
        //ÎáìåГ*ГЁГўГ*ГҐГ¬ Г§Г*Г*Г·ГҐГ*ГЁГї ñîðòèðóåìûõ ýëåìåГ*òîâ
        if(A[j] < A[i])
        {
            ibuf = A[j];
            A[j] = A[i];
            A[i] = ibuf;
        }
    }
    //ГЏГҐГ·Г*ГІГ*ГҐГ¬ îòñîðòèðîâГ*Г*Г*ûé Г¬Г*Г±Г±ГЁГў
    cout<<"Sort elements before imin\n";
    for(imin = (i = 0); i < 40; i++)
        cout<<A[i]<<" ";
    cout<<endl;
    system("pause");//Ñòîï-òî÷êГ* ÷òîáû ïðîãðГ*ììГ* Г*ГҐ Г§Г*êðûâГ*Г«Г*Г±Гј Г±Г°Г*çó ïîñëå îòðГ*áîòêè
    return 0;
}
Миниатюры
Найти минимальный элемент массива, упорядочить элементы  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2012, 18:30     Найти минимальный элемент массива, упорядочить элементы
Еще ссылки по теме:

Найти минимальный элемент массива, умножить на него все отрицательные элементы, стоящие слева - C++
Вообщем условие такое: Среди отрицательных элементов массива найти минимальный, умножить на него все отрицательные элементы стоящие левее...

Найти минимальный элемент массива, поставить его на первое место, остальные элементы сдвинуть - C++
а)Дана последовательность n элементов в виде массива. Найти минимальный элемент массива,паставить его на первое место,остальные...

Упорядочить массив по убыванию элементов, найти минимальный элемент - C++
1) Найдите площадь ромба по его диагоналям. 2)Упорядочить массив В(10) по убыванию элементов, найти минимальный элемент. 3)Дана...

Упорядочить матрицу по возрастанию элементов по строкам, найти минимальный по модулю элемент - C++
Упорядочить матрицу А(3,4) по возрастанию элементов по строкам , найти минимальный по модулю элемент. Заранее спасибо

Дана матрица А(3,4).Упорядочить массив С(12), состоящий из элементов А, по возрастанию, найти минимальный по модулю элемент. - C++
Помогите решить задачу: Дана матрица А(3,4).Упорядочить массив С(12), состоящий из элементов А, по возрастанию, найти минимальный по...


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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
05.03.2012, 18:30     Найти минимальный элемент массива, упорядочить элементы
  #20

Не по теме:

Цитата Сообщение от aidoqa Посмотреть сообщение
int min_pos(const int *);
- зачем вообще вводить отдельную функцию поиска минимального элемента если его можно искать ещё при генерации и начальном выводе на экран, как по мне это нерационально...

Yandex
Объявления
05.03.2012, 18:30     Найти минимальный элемент массива, упорядочить элементы
Ответ Создать тему
Опции темы

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