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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2009, 17:25   #1
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
Печаль Сортировка массива

Уважаемые програмисты.Изучаю сортировку массивов.При написании сортировки массива быстого метода Чарлза Х.возникла проблема...

вот код
Код:
#include <iostream>
#include <conio.h>
using namespace std;



char array[100];

void sort(int high,int low)
{
     
     int i,j;
     int p,temp;
    
     
     i=low;
     j=high;

     p=array[(low+high)/2];
    
             
     do
     
     {
     while(array[i]<p)i++;
     while(array[j]>p)j--;
     
     if (array[i-1]  == '+')array[i-1] = '-';
else if (array[i-1]  == '-')array[i-1] = '+';
     
     if(i<=j)
         {
             temp = array[i];
             array[i]=array[j];
             array[j]=temp;
             i++;
             j--;
          }
      }
             while(i<=j);
             
             if(j>low)sort(j,low);
             if(high>i)sort(high,i);
             
             }
             int main()
             
             {
                 int size;
                 int i;
                 int p = '=';
              
                 cout << " Enter the size of the array : ";
                 
                 cin >> size;
                                  
                 cout << Enter the elements of an array :";
                 
                 for(i=0;i<size;i++)
                 cin >> array[i];
                 sort(size-1,0);
                 for(i=0;i<size;i++)
                 cout << array[i]<< " ";
                 
                 getch();
                 return 0;
                 
              }
Проблема заключается в том,что он сортирует и математические знаки.
Предположим при вводе -3+4-2-1 в ответе будет - - + - 1 2 3 4.А нужно так +1+2+3-4.Помогите пожалуйста..подредактируйте код...плиз
Paul_AG вне форума Ответить с цитированием
Старый 05.06.2009, 17:31   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

А обязательно методом Чарлза?????
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 05.06.2009, 17:46   #3
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

Задание было именно методом Чарлза
Paul_AG вне форума Ответить с цитированием
Старый 05.06.2009, 17:46   #4
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Как насчет не заносить в массив знаки, просто при выводе использовать ios::showpos
Код:
setiosflags(ios::showpos)
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 05.06.2009, 18:33   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

А как насчёт использовать числовой массив!!! А сравнивать по модулю
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 05.06.2009, 20:17   #6
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

setiosflags(ios::showpos)
Можете привести один пример..плизз.просто я не знаю этой функции
Paul_AG вне форума Ответить с цитированием
Старый 05.06.2009, 20:23   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Paul_AG
Можете привести один пример..плизз.просто я не знаю этой функции
Код:
#include <iomanip>
//................
//...............
int a=3;
cout<<setiosflags(ios::showpos)<<a;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.06.2009, 20:29   #8
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

Спасибо большое за пример,но необходимо,чтобы знаки менялись и стояли перед каждым числом.
При вводе -3+4-2-1 в ответе будет - - + - 1 2 3 4.А нужно так +1+2+3-4
Paul_AG вне форума Ответить с цитированием
Старый 05.06.2009, 20:39   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
но необходимо,чтобы знаки менялись и стояли перед каждым числом.
Что значит "необходимо, чтобы знаки менялись"?
Если у вас изначально были числа -3, +4, -2, то как могут после сортировки получиться +3, +2 ? Или это особенности метода Чарлза (я просто с ним не знаком)?
Если использовать setiosflags, то массив должен состоять из чисел.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.06.2009, 20:45   #10
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Брр.. простите, уснул... идея моя состояла изначально в использовании массива чисел, как Sazary говорит...а setiosflags использовать чтобы перед положительными числами ставить знак +
Честно, метод Чарльза сам очень смутно помню....
Uguu~
__STDC__ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива на Си Покемон Общие вопросы C/C++ 2 01.11.2008 08:24
Сортировка массива ManU Помощь студентам 1 21.09.2008 10:41
Сортировка массива С/С++ Dagget Помощь студентам 1 16.07.2008 12:18
Сортировка массива Dagmaria Общие вопросы C/C++ 5 05.07.2008 00:23
Сортировка массива RIO Помощь студентам 1 05.04.2008 17:39