0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 5
1

Переставить числа так, чтобы сначала шли только 0, затем только 1, затем только 2

27.12.2015, 14:32. Показов 1468. Ответов 1
Метки нет (Все метки)

Даны целые числа A[1],A[2],A[3],...,A[n], каждое из которых является либо 0, либо 1, либо 2. Переставить числа так, чтобы сначала шли только 0, затем только 1, затем только 2.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2015, 14:32
Ответы с готовыми решениями:

Переставить элементы массива так, чтобы сначала шли единицы, а затем двойки
Задача такова: В массиве с 10 элементами, состоящим из единиц и двоек, сделать так, чтобы сначала...

Отсортировать массив так, чтобы сначала в нем шли нулевые элементы, затем положительные
Задан целочисленный массив размера N. Отсортировать массив так, чтобы сначала в нем шли нулевые,...

Преобразовать строку так, чтобы сначала шли цифры, а затем все буквы исходной строки, но в обратном порядке
1)Дана строка,содержащая буквы и цифры.Преобразовать строку так,что бы сначала шли цифры,а затем...

Отсортировать массив так, чтобы в нем сначала шли буквы латинского алфавита, затем цифры и, в конце, остальные элементы
Задан символьный массив размера N. Отсортировать массив так, чтобы в нем сначала шли буквы...

1
834 / 637 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
27.12.2015, 18:11 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
#include <stdio.h>
 
void array_csort(int a[], int n){
    int i, j, k, cs[3] = { 0, 0, 0 };
    for(i = 0; i < n; ++i)
        ++cs[a[i]];
    
    for(k = i = 0; i < 3; ++i){
        for(j = 0; j < cs[i]; ++j)
            a[k++] = i;
    }
}
 
int main(void) {
    int i;
    int a[] = { 2, 1, 2, 1, 2, 2, 0, 2, 2, 1, 2 };  
    int n   = sizeof(a)/sizeof(a[0]);
 
    array_csort(a, n);
    for(i = 0; i < n; ++i)
        printf("%d ", a[i]);
    return 0;
}
Пример работы кода
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2015, 18:11
Помогаю со студенческими работами здесь

Переставить элементы массива так, чтобы сначала располагались все 0, а затем все 1
Дан одномерный массив а целого типа , состоящий из 0 и 1. Переставить элементы массива так, чтобы...

Переставить числа в массиве так, чтобы сначала шли элементы меньшие b, затем равные b, а лишь затем большие b
Дан массив a и число b. Переставить числа в массиве так, чтобы сначала шли элементы меньшие b,...

Удалить наименьшее количество синих точек так, чтобы сначала шли только синие, а потом - только красные
Дана цепочка, состоящая из синих (B) и красных (R) точек. Нужно удалить наименьшее количество синих...

Удалить наименьшее количество красных точек так, чтобы сначала шли только синие, а потом – только красные
Дана цепочка, состоящая из синих (B) и красных (R) точек. Нужно удалить наименьшее количество...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru