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

Отсортировать массив таким образом, чтобы все нули находились в начале, а единицы — в конце массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка, указывающая на неинициализированные переменные http://www.cyberforum.ru/cpp-beginners/thread1113466.html
#include <iostream> #include <Windows.h> using namespace std; int main() { setlocale(0, ""); int a; cout << "введите число 0 для умножения, 1 для деления, 2 для сложения, 3 для вычитания"; cin >> a; if (a = 0)
C++ Перевод строки в бинарный код Необходимо перевести строку типа string в бинарный код, соответствующий этой строке, включая пробелы и знаки препинания. Желательно в процедурном виде P.S. Можно ли это сделать по средствам bitset? http://www.cyberforum.ru/cpp-beginners/thread1113452.html
Перевести код с Паскаля на С++ (решение системы уравнений методом Зейделя) C++
uses crt; const a: array of real = (-5,2,1); b: array of real = (1,5,2); c: array of real = (1,-1,4); f: array of real = (-3,6,7); var i,k,m: integer; e: real; x1,x2,x3,max: array of real; b1,c1,f1: array of real;
Работа с модулями элементов массива C++
Здравствуйте, мне нужна ваша помошь, вот есть данная задача, но ее нужно сделать с помощью указателя, а как это сделать я не пойму( Поможете ? В одномерном массиве, состоящем из n действительных элементов, вычислить: • номер минимального по модулю элемента массива; • сумму модулей элементов массива, расположенных после первого отрицательного элемента. Сжимать массив, удалив из него...
C++ Имя запущенного файла http://www.cyberforum.ru/cpp-beginners/thread1113420.html
Вопрос: можно ли определить имя запущенного файла из этого же файла? То есть фай должен сам узнать своё же имя. Подскажите как это сделать средствами С++?
C++ Зависимости в решении Подскажите, пожалуйста, как убрать зависимости между проектами в решении. В свойствах решения, или проектов (Зависимости проектов), снять галку не получается, пишет:"Эта зависимость добавлена системой проектов и не может быть удалена". 10-я студия, Express. подробнее

Показать сообщение отдельно
Catstail
Модератор
22547 / 10952 / 1776
Регистрация: 12.02.2012
Сообщений: 18,087
07.03.2014, 16:41
Это очень нерациональный код. Такие задачи следует решать не перестановками, а подсчетом. Массив просматривается один раз и подсчитывается количество нулей и единиц. А потом в начало массива выводится нужное количество нулей, затем единиц... Это гораздо проще. И гарантировано не возникнет нарушение защиты памяти

Добавлено через 5 минут
Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream.h>
 
void SortC (int *Arr, int n)
{
    int u,i;
    u=0;
    for (i=0; i<n; i++) if (Arr[i] == 1) u++;
    for (i=0; i< n-u; i++) Arr[i]=0;
    for (i=n-u; i<n; i++) Arr[i]=1;
}
 
int main(int argc, char* argv[])
{
    int i,A[]={0,0,1,1,0,1,0,1,0,1};
    SortC(A,10);
    for (i=0; i<10; i++) cout << A[i] << " ";
    cout << endl;
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru