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

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

Войти
Регистрация
Восстановить пароль
 
Tsuna_Savada
0 / 0 / 0
Регистрация: 05.06.2013
Сообщений: 39
#1

Получить из исходного массив положительных чисел и отсортировать его по возрастанию методом пузырька - C++

06.06.2013, 00:11. Просмотров 527. Ответов 4
Метки нет (Все метки)

2. Дан массив N целых чисел. Получить из него массив положительных чисел и отсортировать его по возрастанию методом пузырька
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2013, 00:11     Получить из исходного массив положительных чисел и отсортировать его по возрастанию методом пузырька
Посмотрите здесь:
Получить массив нечетных чисел и отсортировать его по возрастанию методом выбора C++
Получить из исходного массива массив отрицательных чисел и отсортировать его по убыванию методом выбора C++
C++ Дан массив из N целых чисел. Отсортировать его по убыванию элементов методом пузырька
C++ Как отсортировать двумерный массив по возрастанию методом пузырька?
Отсортировать массив чисел методом пузырька C++
C++ Отсортировать одномерный массив действительных чисел методом пузырька (по убыванию)
Дан одномерный массив А, состоящий из N элементов. Отсортировать все его элементы улучшенным методом пузырька C++
Отсортировать по возрастанию массив 10 целых чисел методом выбора C++
Отсортировать по возрастанию массив 10 целых чисел методом выбора C++
C++ Отсортировать массив методом минимального элемента и методом пузырька
Cгенерировать одномерный массив из 10 чисел,отсортировать его по возрастанию или убыванию C++
На основе исходного файла создать массив удвоенных нечётных чисел и упорядочить его по возрастанию элементов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
6968 / 4139 / 588
Регистрация: 29.11.2010
Сообщений: 10,978
06.06.2013, 00:40     Получить из исходного массив положительных чисел и отсортировать его по возрастанию методом пузырька #2
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
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
/* Сформировать массив A. Из отрицательных элементов массива А сформировать
массив Р. Из положительных элементов массива А сформировать массив N. Вывести
все массивы на экран. Для каждого массива найти max и min элементы.
Использовать функции. */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 20
 
void generate(int *, const size_t);
void print(const int *, const size_t);
size_t countPos(const int *, const size_t);
void sortOut(const int *, const size_t, int *, int *);
int min(const int *, const size_t);
int max(const int *, const size_t);
 
 
int main(void)
{
    int A[SIZE], *P, *N, sizeP, sizeN;
    srand(time(NULL));
    
    generate(A, SIZE);
    sizeP = countPos(A, SIZE);
    sizeN = SIZE - sizeP;
    P = malloc(sizeof(int) * sizeP);
    N = malloc(sizeof(int) * sizeN);
    
    sortOut(A, SIZE, P, N);
    
    printf("A: ");
    print(A, SIZE);
    printf("Min: %d\nMax: %d\n", min(A, SIZE), max(A, SIZE));
    
    printf("\nP: ");
    print(P, sizeP);
    printf("Min: %d\nMax: %d\n", min(P, sizeP), max(P, sizeP));
    
    printf("\nN: ");
    print(N, sizeN);
    printf("Min: %d\nMax: %d\n", min(N, sizeN), max(N, sizeN));
    
    free(P);
    free(N);
    
    return 0;
}
 
void generate(int *arr, const size_t size)
{
    size_t i;
    for (i=0; i < size; i++)
        arr[i] = -100 + rand() % 201;
}
 
void print(const int *arr, const size_t size)
{
    size_t i;
    for (i=0; i < size; i++)
        printf("%d ", arr[i]);
    printf("\n");
}
 
size_t countPos(const int *arr, const size_t size)
{
    size_t i, counter = 0;
    for (i=0; i < size; i++)
        if (arr[i] >= 0)
            ++counter;
    
    return counter;
}
 
void sortOut(const int *arr1, const size_t size1, int *arr2, int *arr3)
{
    size_t i, indexP = 0, indexN = 0;
    for (i=0; i < size1; i++)
        arr1[i] >= 0 ? (arr2[indexP++] = arr1[i]) : (arr3[indexN++] = arr1[i]);
}
 
int min(const int *arr, const size_t size)
{
    size_t i;
    int min = arr[0];
    for (i=1; i < size; i++)
        if (arr[i] < min)
            min = arr[i];
    
    return min;
}
 
int max(const int *arr, const size_t size)
{
    size_t i;
    int max = arr[0];
    for (i=1; i < size; i++)
        if (arr[i] > max)
            max = arr[i];
    
    return max;
}
Добавлено через 13 секунд
Переделать сами сможете, я думаю.

Добавлено через 1 минуту
Или я выдам решение через вектора, ГСЧ и алгоритмы из STL
MrGluck
Модератор
Эксперт CЭксперт С++
6968 / 4139 / 588
Регистрация: 29.11.2010
Сообщений: 10,978
06.06.2013, 00:53     Получить из исходного массив положительных чисел и отсортировать его по возрастанию методом пузырька #3
Tsuna_Savada, что конкретно вам не понятно? Для компиляции и "абы сдать" достаточно лишь добавить приведение памяти, выделяемой malloc к конкретному типу.
И убрать лишние массивы и действия. Вроде бы там названия интуитивно понятные у функций
Tsuna_Savada
0 / 0 / 0
Регистрация: 05.06.2013
Сообщений: 39
06.06.2013, 00:58  [ТС]     Получить из исходного массив положительных чисел и отсортировать его по возрастанию методом пузырька #4
Цитата Сообщение от MrGluck Посмотреть сообщение
Tsuna_Savada, что конкретно вам не понятно? Для компиляции и "абы сдать" достаточно лишь добавить приведение памяти, выделяемой malloc к конкретному типу.
И убрать лишние массивы и действия. Вроде бы там названия интуитивно понятные у функций
Посмотрел внимательнее. Думаю что сам уберу лишние массивы =)
Спасибо

Добавлено через 2 минуты
Спасибо всем =)
Tsuna_Savada
0 / 0 / 0
Регистрация: 05.06.2013
Сообщений: 39
06.06.2013, 00:59  [ТС]     Получить из исходного массив положительных чисел и отсортировать его по возрастанию методом пузырька #5
Цитата Сообщение от MrGluck Посмотреть сообщение
2. Из отрицательных элементов массива А сформировать массив Р
Добавлено через 13 секунд
Переделать сами сможете, я думаю.

Добавлено через 1 минуту
Или я выдам решение через вектора, ГСЧ и алгоритмы из STL
Сомневаюсь что мой ум позволит самому переделать.
Буду очень очень благодарен за "такую" помощь =)

Добавлено через 15 минут
Спасибо =)
Yandex
Объявления
06.06.2013, 00:59     Получить из исходного массив положительных чисел и отсортировать его по возрастанию методом пузырька
Ответ Создать тему
Опции темы

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