Список форумов Шадринский форум -> Программирование -> Delphi, Pascal, C, C# -> Си, сортировка чисел
Начать новую тему   Ответить на тему   вывод темы на печать

Си, сортировка чисел

Автор
Сообщение
Onix_R
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 09.11.2010
Сообщения: 159
Откуда: От верблюда

Статус: Offline
СообщениеДобавлено: 2011.09.10 04:36.32
Ответить с цитатой
Доброго времени суток, начну с того, что начался пердмет по программированию на Си, решил идти быстрее намеченного плана и перешел к самостоятельному обучению по книжке. Наткнулся на задачу сортировки 10 натуральных случайных чисел в массиве по возрастанию, вот код из книги:
#include <stdio.h>

main()
{
   int mass[10]={5,3,2,4,6,7,11,17,0,13};
   int i,j,N,mm,tmp;
   N=10;
   for (i=N-1;i>=1;i--)
   {
      mm=0;
      for (j=1;j<=i;j++)
      {
         if (mass[i]>mass[mm])
            mm=j;
            tmp=mass[i];
            mass[i]=mass[mm];
            mass[mm]=tmp;
      }
   }
   for (i=0;i<N;i++)
      printf("%d,",mass[i]);
   printf("\n");
}

компилирую и даю команду на выполнение:
onix@Lucifer:~$ gcc -x c -o sort.bin -g sort.c
onix@Lucifer:~$ ./sort.bin
0,2,3,4,5,6,7,11,13,17,

вроде все пучком, немного меняю значения в масссиве mass на {5,8,9,4,9,74,56,7,5,10} и посылаю на компиляцию с запуском:
onix@Lucifer:~$ gcc -x c -o sort.bin -g sort.c
onix@Lucifer:~$ ./sort.bin
4,5,7,8,9,9,10,56,5,74,

и понимаю, что скорее всего где-то ошибся, сначала думал в синтаксисе, потом появилась мысль, что виноват линуксовый GCC компилятор, запустил BDS 2006, набрал, скомпилил, та же петрушка. Уже больше 2ух суток на этой задаче вешу, как я понял это скорее всего моя невнимательность, просьба пнуть меня в нужном направлении. Спасибо.
_________________
Сыграем? Кто уронил систему — проиграл:
dd if=/dev/urandom of=/dev/kmem bs=1 count=1 seek=$RANDOM
Посмотреть профиль Отправить личное сообщение ICQ Number
eLSe
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 14.11.2010
Сообщения: 887


Статус: Offline
СообщениеДобавлено: 2011.09.10 12:12.21
Ответить с цитатой
Onix_R писал(а):

if (mass[i]>mass[mm])

списываем правильно Wink
нужно if (mass[j]>mass[mm])

з.ы. а вообще это самый не эффективный метод сортировки
Посмотреть профиль Отправить личное сообщение
Onix_R
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 09.11.2010
Сообщения: 159
Откуда: От верблюда

Статус: Offline
СообщениеДобавлено: 2011.09.10 12:23.59
Ответить с цитатой
eLSe
А ларчик просто открывался, стыдно >_< безмерно благодарен.
_________________
Сыграем? Кто уронил систему — проиграл:
dd if=/dev/urandom of=/dev/kmem bs=1 count=1 seek=$RANDOM
Посмотреть профиль Отправить личное сообщение ICQ Number
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2011.09.10 12:27.55
Ответить с цитатой
Onix_R

т.е. сути алгоритма не понял Wink
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Onix_R
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 09.11.2010
Сообщения: 159
Откуда: От верблюда

Статус: Offline
СообщениеДобавлено: 2011.09.10 12:36.30
Ответить с цитатой
Leon
Угу, ща вырублю телефон, аську, почтовый клиент, браузер и домофон. Может так сконцентрирую все внимание. Еще раз спасибо господа.
_________________
Сыграем? Кто уронил систему — проиграл:
dd if=/dev/urandom of=/dev/kmem bs=1 count=1 seek=$RANDOM
Посмотреть профиль Отправить личное сообщение ICQ Number
Страница 1 из 1
Начать новую тему   Ответить на тему   вывод темы на печать
Показать сообщения:   
Список форумов Шадринский форум -> Программирование -> Delphi, Pascal, C, C# -> Си, сортировка чисел

 
Перейти: 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы