Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка с помощью прямого выбора, помогите найти ошибку 
:(
    Опции темы
df_3
Дата 28.4.2004, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 19.5.2003

Репутация: нет
Всего: 1



Вот такой вот код:

Код
void Sort(int a[], int size){
 int i,x,k,j;
 
  x=0;
  k=0;
 
 for( i=0; i < size; i++) {              
 
     k=i;
     x=a[i];
     
      for( j=i+1; j < size; j++){  
       if (  a[j] <= x ) {
        k = j; x = a[j];      
      }
   a[k] = a[i];
   a[i] = x;      
   
 }
}
for (i = 0; i < size;  i++) printf("%d ",a[i] );

printf("   ready\n");
}


Вроде всё правильно а выдаёт : 2 2 2 11 12 12 55 ready

исходный 12 2 2 11 23 12 55

не могу понять что не так
sad.gif


--------------------
ИЗ ВСЕХ ВОЗМОЖНОСТЕЙ НА ЗЕМЛЕ САМАЯ ЯРКАЯ - ЭТО ЖИЗНЬ!
PM MAIL WWW MSN   Вверх
cardinal
Дата 28.4.2004, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 5
Всего: 99



То есть вопрос в том откуда вторая двойка и куда пропало число 23, так?

А вообще посмотри тут:
http://forum.vingrad.ru/index.php?showtopic=21735


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
val
Дата 29.4.2004, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

Репутация: 1
Всего: 7



Проверь, правильно ли передаются параметры, а так вроде бы программа написана правильно...


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
Abrek
Дата 29.4.2004, 09:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











все дело в скобках:
Либо внеси
a[k] = a[i];
a[i] = x;
в блок оператора if, либо(лучше) вынеси за пределы блока внутреннего for:

for( i=0; i < size; i++) {

k=i;
x=a[i];

for( j=i+1; j < size; j++){
if ( a[j] <= x ) {
k = j; x = a[j];
}
}
a[k] = a[i];
a[i] = x;

}

  Вверх
df_3
Дата 29.4.2004, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 19.5.2003

Репутация: нет
Всего: 1



Abrek спасибо! Я понял в чём дело.
Всем спасибо всё работает smile.gif


--------------------
ИЗ ВСЕХ ВОЗМОЖНОСТЕЙ НА ЗЕМЛЕ САМАЯ ЯРКАЯ - ЭТО ЖИЗНЬ!
PM MAIL WWW MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.2478 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.