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

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

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

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

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

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

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

Найти минимальный и максимальный элементы массива и упорядочить элементы по убыванию, стоящие между ними, методом «пузырька». - C++
Привет ВСЕМ!!! Обратите вниминие на эту задачку, ПЛЗ!!! =) Можно и без метода " пузырька"!!! Дан массив А(40). Найти минимальный и...

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

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

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

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

21
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;
}
1
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
02.03.2012, 22:50  [ТС] #3
R136a1, можешь описать свою команду
p.s.сказать что каждое определение означает?
0
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
02.03.2012, 22:55 #4
Цитата Сообщение от aidoqa Посмотреть сообщение
R136a1, можешь описать свою команду
p.s.сказать что каждое определение означает?
про qsort подробно написано здесь. Лучше конкретно спросите, какую конструкцию вы не понимаете
1
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
02.03.2012, 22:55  [ТС] #5
или чу чуть по проще ее можно сделать?
просто мы еще не все прошли)то что у вас написано я на врядли смогу обьяснить)
0
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;
}
0
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
04.03.2012, 12:02  [ТС] #7
Программа выдает всегда почему то нули.
можно ли ее сделать без std::, qsort,sizeof
0
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 - Алгоритмы сортировок
1
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
04.03.2012, 13:05  [ТС] #9
R136a1,ясно, почему тогда при компеляци она выдает нули?
0
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
04.03.2012, 13:06 #10
Цитата Сообщение от aidoqa Посмотреть сообщение
R136a1,ясно, почему тогда при компеляци она выдает нули?
покажите код, который компилируете
0
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;
}
0
Миниатюры
Найти минимальный элемент массива, упорядочить элементы  
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
04.03.2012, 18:15  [ТС] #12
в чем ошибка?
0
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
04.03.2012, 18:33 #13
Цитата Сообщение от aidoqa Посмотреть сообщение
в чем ошибка?
в 13 строчке в фигурных скобках вместо /*значения*/ нужно ввести 40 цифр через запятую
1
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
04.03.2012, 18:35  [ТС] #14
вот я даю)
0
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;
}
0
Миниатюры
Найти минимальный элемент массива, упорядочить элементы  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2012, 21:30
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
04.03.2012, 21:30
Ответ Создать тему
Опции темы

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