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

Составить программу размещающая элементы масива в возврастающем порядке. - C++

Восстановить пароль Регистрация
 
риммок
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 68
23.04.2013, 00:04     Составить программу размещающая элементы масива в возврастающем порядке. #1
Дан масив А(1..n) в котором каждый элемент равен 0, 1 или 2.Составить программу размещающая элементы масива в возврастающем порядке..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2013, 00:04     Составить программу размещающая элементы масива в возврастающем порядке.
Посмотрите здесь:

C++ Составить программу на языке Си,которая выводит элементы матрицы в заданном порядке
Элементы масива C++
C++ Составить программу которая переворачивает список L, изменяет ссылки в этом списке так, чтобы его элементы оказались расположенными в обратном порядке
C++ Найти разные элементы масива
C++ Составить программу, печатающую в возрастающем порядке...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
23.04.2013, 00:15     Составить программу размещающая элементы масива в возврастающем порядке. #2
C++
1
2
3
4
5
6
7
8
9
10
11
#include <algorithm>
#include <iostream>
 
int main () {
    int n = 0, *arr = new int[ 512 ];
    while ( !std::cin.eof () ) {
        std::cin >> arr[ n++ ];
    } std::sort ( arr, arr + n );
 
    return 0;
}
Это стандартная сортировка. Можно сделать и такую.

Добавлено через 1 минуту
Чуть не забыл, элементы вбиваются из стандартного потока, юзаем freopen, дабы из файла. Вывода так же нет =)
Чтобы эмулировать конец файла нужно нажать, на линуксах ctrl+d, на виндах не помню.
P.S. Стандартная сортировка = merge sort (вроде), время нелинейное. Сортировка подсчётом - линейное.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,831
Записей в блоге: 2
Завершенные тесты: 1
23.04.2013, 00:22     Составить программу размещающая элементы масива в возврастающем порядке. #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
#include <cstdlib>
#include <iostream>
#include <string> 
#include <ctime>
void arrout(const int * arr,const int size){
    for(int i=0;i<size;++i)
        std::cout<<arr[i]<<' ';
    std::cout<<std::endl;
}
void arrfill(int * arr,const int size,const int min,const int max){
    for(int i=0;i<size;++i)
        arr[i]=rand()%(max-min+1)+min;
}
 
int cmp(const void * x1,const void * x2){
    return *(int*)x1-*(int*)x2;
}
 
int main(){   
    const int n=10;
    int A[n];
    srand(time(NULL));
    arrfill(A,n,0,2);
    arrout(A,n);
    qsort(A,n,sizeof(*A),cmp);
    arrout(A,n);
}
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
23.04.2013, 00:24     Составить программу размещающая элементы масива в возврастающем порядке. #4
Делов здесь на пять минут, правда. Поленился сразу...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <algorithm>
#include <iostream>
 
int main () {
    int n = 0, sorted[] = {0, 0, 0}, t;
    std::cin >> n;
    while ( n-- ) {
        std::cin >> t;
    sorted[ t ]++;
    }
    
    for ( int i = 0; i < 3; i++ ) {
    while ( sorted[ i ]-- ) {
        std::cout << i << " ";
    }
    } std::cout << std::endl;
 
    return 0;
}
Но здесь сначала надо ввести n - кол-во элементов, потом сам массив.

Добавлено через 1 минуту
Цитата Сообщение от Croessmah Посмотреть сообщение
Как вариант:
Может я чего-то непонимаю, но зачем давать практически тоже самое ещё и с бессмысленным рандомным заполнением?
Yandex
Объявления
23.04.2013, 00:24     Составить программу размещающая элементы масива в возврастающем порядке.
Ответ Создать тему
Опции темы

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