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

Разделить массив на два: числа больше пятнадцати и меньше - C++

Восстановить пароль Регистрация
 
Кондуктор
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 4
15.05.2014, 10:13     Разделить массив на два: числа больше пятнадцати и меньше #1
Задание : задать 10 элементов (ввод с клавиатуры). Программа должна отсортировать их по возрастанию и числа от 15 до бесконечности отравить в массив a , а остальные в b.
Помогите, пожалуйста
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2014, 10:13     Разделить массив на два: числа больше пятнадцати и меньше
Посмотрите здесь:

C++ Чтобы программа называла больше или меньше задуманного числа
Найти в каждом столбце матрицы G элементы, которые больше числа А и меньше числа С C++
C++ Даны натуральные числа N, K, L (K<L). Вывести на экран все делители числа N, которые меньше K или больше L
генерация случайного числа больше нуля, но меньше единицы C++
Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увличить второе число в пять раз с++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
15.05.2014, 12:05     Разделить массив на два: числа больше пятнадцати и меньше #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
#include <iostream>     // std::cout
#include <algorithm>    // std::partition
int main () {
    const int SIZE = 10;
    int* array = new int[SIZE];
    std::cout << "Input element array:" << std::endl;
    for(int count = 0; count < SIZE; ++count)
        std::cin >> array[count];
 
    int* ptr = std::partition (&array[0], &array[10], [](int i){ return i>= 15; });
    int* a = new int[ptr - array];
    int* b = new int[SIZE - (ptr - array)];
    std::copy(array, ptr, a);
    std::copy(ptr, &array[SIZE], b);
 
    for(int count = 0; count < (ptr - array); ++count)
        std::cout << a[count] << ' ';
    std::cout << '\n';
 
    for(int count = 0; count < (SIZE - (ptr - array)); ++count)
        std::cout << b[count] << ' ';
    std::cout << '\n';
 
    return 0;
}
bradobrei
Продам уран 238U
 Аватар для bradobrei
119 / 119 / 23
Регистрация: 22.01.2013
Сообщений: 298
15.05.2014, 12:25     Разделить массив на два: числа больше пятнадцати и меньше #3
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
#include <iostream>
#include <cstdlib>
using namespace std;
 
#define n 10
int main(){
    srand(time(NULL));
    int mas[n];
    int countA = 0, countB = 0;
    for(int i  = 0; i < n; i++){
        mas[i] = rand()% 30 + 1;
        cout << mas[i] << " ";
        if(mas[i] < 15)
            countB ++;
        else countA ++;
    }
    int tmp = 0;
    cout << endl << "Sort mas: ";
    for(int i = 0; i < (n - 1); i++){
        for(int j = (i + 1); j < n; j++){   
            if(mas[i] > mas[j]){
                tmp = mas[i];
                mas[i] = mas[j];
                mas[j] = tmp;
            }
        }
        cout << mas[i] << " "; 
    }
        cout << mas[n - 1];
    
    int *a = new int[countA];
    int *b = new int[countB];
    int tmpA = 0, tmpB = 0;
    for(int i = 0; i < n; i++){
        if(mas[i] < 15){
            b[tmpB] = mas[i];
            tmpB ++;
        }
        if(mas[i] > 15){
            a[tmpA] = mas[i];
            tmpA ++;
        }
    }
    cout << endl << "A: ";
    for(int i = 0; i < countA ; i++)
        cout << a[i] << " ";
    cout << endl << "B: ";
    for(int i = 0; i < countB; i++)
        cout << b[i] << " ";    
delete []a;
delete []b;
return 0;
}
Кондуктор
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 4
15.05.2014, 16:16  [ТС]     Разделить массив на два: числа больше пятнадцати и меньше #4
Спасибо большое
Yandex
Объявления
15.05.2014, 16:16     Разделить массив на два: числа больше пятнадцати и меньше
Ответ Создать тему
Опции темы

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