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

Поиск:

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


Новичок



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

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



smile
Уважаемые программисты!
Я написал свою версию сортировки подсчетом только почему-то программа неправильно выводит значения элементов массива. Помогите пожалуйста. Cout в конце программы я использовал только для проверки.


#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
void main()
{
clrscr();
const n=4;
int b,A[n],B[n],C[n],j,i;
for(i=0;i<n;i++)
{
printf("x[%d]=",i);
scanf("%d",A[i]);
}
for (i=0;i<n;i++)
{
B[i]=0;
}
for (i=n-1;i>=1;i--)
{
for (j=i-1;j>=0;j--)
{
if(A[j]>A[i]) B[j]=B[j]+1;
else B[i]=B[i]+1;
}
}
for (i=0;i<n;i++)
{
j=B[i];
C[j]=A[i];
}
for(i=0; i<n; i++)
{
j=B[i];
cout <<"\n"<<C[j];
}
}



Заранее благодарю.
PM MAIL   Вверх
segmentation_fault
Дата 27.5.2005, 02:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>

void main()
{
  clrscr();
  const n=4;
  int b,A[n],B[n],C[n],j,i;
  for(i=0;i<n;i++)
  {
    printf("x[%d]=",i);
    scanf("%d",A[i]);
  }
  for (i=0;i<n;i++)
  {
    B[i]=0;
  }
  for (i=n-1;i>=1;i--)
  {
    for (j=i-1;j>=0;j--)
    {
      if(A[j]>A[i]) B[j]=B[j]+1;
      else B[i]=B[i]+1;
    }
  }
  for (i=0;i<n;i++)
  {
    j=B[i];
    C[j]=A[i];
  }
  for(i=0; i<n; i++)
  {
    j=B[i];
    cout <<"\n"<<C[j];
  }
} 


PM MAIL   Вверх
Guest
Дата 27.5.2005, 03:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А вот исправленный код:

Код

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>

void main()
{
  clrscr();
  //const n=4; как это у тебя скомпилировалось, не знаю
  const int n = 4;
  int b,A[n],B[n],C[n],j,i;
  for(i=0;i<n;i++)
  {
    printf("x[%d]=",i); //а лучше cout<<"x["<<i<<"] = ";
    //scanf("%d",A[i]); забыл & перед А[i]. Можно ещё вроде бы scanf("%d", A + i); А лучше cin>>A[i];
    scanf("%d", &A[i]); 
  }
  for (i=0;i<n;i++)
  {
    B[i]=0;
  }
  for (i=n-1;i>=1;i--)
  {
    for (j=i-1;j>=0;j--)
    {
      if(A[j]>A[i]) B[j]=B[j]+1;
      else B[i]=B[i]+1;
    }
  }
  for (i=0;i<n;i++)
  {
    j=B[i];
    C[j]=A[i];
  }
  for(i=0; i<n; i++)
  {
    //j=B[i]; зачем это если честно не понимаю
    //cout <<"\n"<<C[j]; 
    cout<<C[i]<<"\n";
  }
}


У меня всё выводится нормально.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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