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

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

Восстановить пароль Регистрация
 
Tsuna_Savada
0 / 0 / 0
Регистрация: 05.06.2013
Сообщений: 39
06.06.2013, 00:11     Получить из исходного массив положительных чисел и отсортировать его по возрастанию методом пузырька #1
2. Дан массив N целых чисел. Получить из него массив положительных чисел и отсортировать его по возрастанию методом пузырька
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2013, 00:11     Получить из исходного массив положительных чисел и отсортировать его по возрастанию методом пузырька
Посмотрите здесь:

Отсортировать массив чисел методом пузырька C++
C++ Отсортировать одномерный массив действительных чисел методом пузырька (по убыванию)
Получить из исходного массива массив отрицательных чисел и отсортировать его по убыванию методом выбора C++
Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька C++
C++ Как отсортировать двумерный массив по возрастанию методом пузырька?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
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
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
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     Получить из исходного массив положительных чисел и отсортировать его по возрастанию методом пузырька
Ответ Создать тему
Опции темы

Текущее время: 23:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru