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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.03.2009, 14:26   #1
kehayner
Новичок
Джуниор
 
Регистрация: 24.04.2008
Сообщений: 2
По умолчанию сортировка

Здрасте! Делал вот обычную сортировку массива, но когда начинается вызов функции sort то после нее ничего дальше не делается.

Вот код:
Код:
#pragma argsused
void sort(int n);
void swap(int *p1, int *p2);
int a[5];
int main(int argc, char* argv[])
{
int i;
for (i = 0; i < 5; i++)
    {
     cout<<"Vvedite elimenti massiva: "<<i<<" ";
     cin>>a[i];
    }
    sort(5);  //от деся когда вызывается эта ф-я, программа больше ничего
                //не хочет делать                                             
    cout<<"Massiv posle sortirovki: "<<endl;
    for(i = 0; i < 5; i++)
    cout<<a[i]<<" ";
system("pause");
        return 0;
}
//---------------------------------------------------------------------------
void sort(int n)
{
int i, j, low;
for (i = 0; i < n - 1; i++)
   {
    low = i;
    for (j = i + 1; j < n; i++)
        if (a[j] < a[low])
           low = j;
        if (i != low)
            swap(&a[i], &a[low]);
   }
}

void swap(int *p1, int *p2)
{
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}

Последний раз редактировалось MaTBeu; 17.03.2009 в 19:36.
kehayner вне форума
Старый 17.03.2009, 16:41   #2
somwan
Пользователь
 
Регистрация: 05.11.2008
Сообщений: 33
По умолчанию

попробуйте заменить:

for (j = i + 1; j < n; i++) <<< i++ НА j++
if (a[j] < a[low])
low = j; может я неправельно понимаю(сам новичёк) условие завершения
j < n а увеличивается i. Поэтому цикл for(j = i + 1; j < n; i++) неможет завершиться.
somwan вне форума
Старый 17.03.2009, 18:52   #3
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

Код:
void sort(int n)
{
int i, j, low;
for (i = 0; i < n - 1; i++)
capta1n вне форума
Старый 17.03.2009, 20:14   #4
kehayner
Новичок
Джуниор
 
Регистрация: 24.04.2008
Сообщений: 2
По умолчанию

Оо Спасиба, все заработало!=) А ошибка то нелепая ваще, вроде не один раз проверял весь код, а такое не заметил=))
kehayner вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка Шелла и Шейкер-сортировка AleksandrMakarov Паскаль, Turbo Pascal, PascalABC.NET 11 11.03.2012 12:18
Сортировка Romuald Microsoft Office Excel 4 23.01.2009 13:14
1. Сортировка Шелла по убыванию 2. Сортировка вставками по убыванию Arkuz Помощь студентам 1 25.09.2007 17:16
Сортировка omi БД в Delphi 2 23.02.2007 09:41