Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.04.2008, 01:04   #1
lhOsvald
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 12
По умолчанию Сортировка масива

Привет!

Генерируется одномерный массив где значения элементов массива равны либо нулю, либо единице, либо двойке.

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

Ну сгенерировать массив я смог со случайными значениями элементов,
а вот отсортировать неполучается.

Подскажите пожалуйста!
lhOsvald вне форума
Старый 18.04.2008, 12:00   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Ох и ленивые люди пошли!!! Тебе, что влом нажать кнопку Поиск??? Или тот же гугл!!!
Ладно, держи свою программу, халявщик

Код:
#include <iostream>
#include <conio>
#include <stdlib>

using std::cin;
using std::cout;
using std::endl;

int main(int argc, char* argv[])
{
        int *array;
        int size;
        int temp;

        cout<<"Enter a size of the array: "<<endl;
        cin>>size;

        array=new int[size];

        for(int i=0; i<size; i++)
        {
                array[i]=rand()%3;
        }
        for(int j=0; j<size; j++)
        {
                for(int i=1; i<size; i++)
                {
                        if(array[i-1]>array[i])
                        {
                                temp=array[i-1];
                                array[i-1]=array[i];
                                array[i]=temp;
                        }
                }
        }

        cout<<"\n";

        for(int i=0; i<size; i++)
        {
                cout<<array[i]<<' ';
        }

        getch();
        return 0;
}
Метод называется Пузырьковая сортировка. Только не говори, что ты о нем не слышал. И юзай гугл, там есть все.
MaTBeu вне форума
Старый 18.04.2008, 13:12   #3
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

А может проще посчитать количество нулей, единиц, двоек. А затем забить их в массив заново. Быстрее всякой сортировки.
Carbon вне форума
Старый 18.04.2008, 14:22   #4
lhOsvald
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 12
По умолчанию

Большое спасибо MaTBeu!

Я только слышал про пузырьковую сортировку! но незнал его принципа!

Только вот начинаю осваивать язык.
lhOsvald вне форума
Старый 19.04.2008, 00:27   #5
Roman-S
 
Регистрация: 22.02.2008
Сообщений: 8
По умолчанию

проще использовать функцию qsort ))
Roman-S вне форума
Старый 19.04.2008, 17:27   #6
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Цитата:
Сообщение от Roman-S Посмотреть сообщение
проще использовать функцию qsort ))
Может и проще. Но какой толк от ее использования? Человек же только осваивает язык. И ему будет полезнее знать, как именно происходит сортировка, а не просто отмахнуться стандартной функцией.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума
Старый 22.04.2008, 00:05   #7
lhOsvald
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 12
По умолчанию

Привет !

Вот немогу придумать как сделать проверку числа чтобы оно соответствовало условию: типа должно делиться на 400.

Получается если несоответствует должна проводится одна операция, а если соответствует то другая.

И когда пробовал разные варианты столкнулся с еще одной проблемой:
при записи
......
Код:
 if (......) 
                      month[]={31,29,31,30,...};
          else
                      month[]={31,28,31,30,...};

          for (i=0; i<12; i++) {
          cout<<"\n["<<i+1<<"]  -  "<<month[i];
          }
все элементы массива заполняются нулями, если использовать заполнение массива без if (...), все получается нормально.
Но нужно же чтоб было условие выполнения.

Последний раз редактировалось merax; 07.07.2008 в 09:03.
lhOsvald вне форума
Старый 22.04.2008, 00:14   #8
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Формулируй нормально вопрос!!!
Если надо, чтобы число на 400 делилось, то это делается проверкой

Код:
if(number%400==0)        //это если делится на 400
{
      //какой-то там код
}
else      //если не делится на 400
{
    //другой какой-то код
}
Вот и все. Читаем мануалы, и все будет у тебя пучком

А насчет второго... ты бы написал, что там у тебя за условие стоит... А то понимаешь, мы тут только начинающие телепаты, не умеем пока читать, что там у тебя за пятью точками написано

Последний раз редактировалось MaTBeu; 22.04.2008 в 00:17.
MaTBeu вне форума
Старый 22.04.2008, 00:45   #9
lhOsvald
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 12
По умолчанию

Привет MaTBeu!

Ты в очередной раз помогаешь!

А ты можешь разъяснить зачем ставится знак процентов?
Я же говорил что еще мало знаю.
lhOsvald вне форума
Старый 22.04.2008, 00:56   #10
lhOsvald
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 12
По умолчанию

Вот сейчас при этом условии тоже заполняется нулями!

Код:
cout<<"\nVvedite god - \n";
cin>>Y;

if (Y%400==0){
   int month[]={31,29,30,31,31,30,31,30,31,30,31,30};
   }
else {
     int month[]={31,28,31,30,31,31,30,31,30,31,30,31};
     }
for (i=0; i<12; i++){
    cout<<"["<<i+1<<"]  -  "<<month[i]<<endl;
    }

Последний раз редактировалось merax; 07.07.2008 в 09:03.
lhOsvald вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление записи из динамического масива... Altera Общие вопросы Delphi 4 09.06.2008 09:15
Ранжирование и умножение масива 11111 Паскаль, Turbo Pascal, PascalABC.NET 3 02.11.2007 22:01
1. Сортировка Шелла по убыванию 2. Сортировка вставками по убыванию Arkuz Помощь студентам 1 25.09.2007 17:16
элемменты заданого масива a(n) перепешите в новый масив b(n) в обратном порядке! finch Помощь студентам 4 25.06.2007 13:20
СОХРАНИЯ В ФАЙЛ ДВУМЕРНОГО ДИНАМИЧЕСКОГО МАСИВА!!!! _FL@ER_ Помощь студентам 2 23.06.2007 16:31