Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка подсчетом 
:(
    Опции темы
Oygen
Дата 5.8.2009, 05:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте, посоветуйте в доработке функции сортировки. Программа сортирует целочисленный массив подсчетом, но когда встречаются повторяющиеся числа то при выводе одно выводится
правильно, а остальные в виде нулей. Заранее благодарен.

Код
#include <stdio.h> 


void sort_count(int in[],int out[],int n)
 { int i,j ,count;
      for (i=0; i< n; ++i) 
      {
      for ( count=0,j=0;j<n; ++j)
          
           if (in[j] < in[i])
               ++count;         // Подсчитывает количество элементов больше текущего
               out[count]=in[i];           // Определяет его место в выходном массиве
       }
      
 }                                                

void main()
{
int a[]={41,7,8,40,8};
int b[5]={0};
int n=sizeof(a)/sizeof(int);
sort_count(a,b,n);
for (int i=0; i<n; ++i) 
printf("%d ",b[i]);
puts("");
}



Это сообщение отредактировал(а) Oygen - 5.8.2009, 05:22
PM MAIL   Вверх
piritus
Дата 5.8.2009, 06:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

#include <stdio.h> 

void sort_count(int in[],int out[],int n);

int main(void){
int a[]={41,7,8,40,8};
int i;
int n=sizeof(a)/sizeof(int);
int b[5]={0};

  sort_count(a,b,n);
  for (i=0;i<n;i++) printf("%d ",b[i]);

  return 0;
}

void sort_count(int in[],int out[],int n){
int i,j ,count;
  for (i=0; i< n; ++i){
    for ( count=0,j=0;j<n; ++j)
      if (in[j] < in[i] || (in[j]==in[i] && i<j)) count++;
    out[count]=in[i];
  }
}


--------------------
PM MAIL ICQ   Вверх
Oygen
Дата 5.8.2009, 07:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(piritus @ 5.8.2009,  06:34)
Код

#include <stdio.h> 

void sort_count(int in[],int out[],int n);

int main(void){
int a[]={41,7,8,40,8};
int i;
int n=sizeof(a)/sizeof(int);
int b[5]={0};

  sort_count(a,b,n);
  for (i=0;i<n;i++) printf("%d ",b[i]);

  return 0;
}

void sort_count(int in[],int out[],int n){
int i,j ,count;
  for (i=0; i< n; ++i){
    for ( count=0,j=0;j<n; ++j)
      if (in[j] < in[i] || (in[j]==in[i] && i<j)) count++;
    out[count]=in[i];
  }
}


Благодарю за помощь, все работает.
PM MAIL   Вверх
bsa
Дата 5.8.2009, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196




M
bsa
Oygen, если ответ на вопрос получен, то пометь тему решенной

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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