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

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

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

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

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

Дан массив А(40). Найти минимальный элемент массива, упорядочить элементы, расположенные до этого элемента по убыванию алгоритмом быстрой сортировки.
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) найти максимальный элемент массива и упорядочить по возрастанию все элементы, расположенные после найденного максимального...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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;
}
Миниатюры
Найти минимальный элемент массива, упорядочить элементы  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2012, 21:30
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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