Форум программистов, компьютерный форум CyberForum.ru

Ошибка в порязрядной сортировке?! - C++

Восстановить пароль Регистрация
 
REALIST07
Автор FAQ
Автор FAQ
 Аватар для REALIST07
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
10.04.2011, 20:55     Ошибка в порязрядной сортировке?! #1
Вообщем дали задание отсортировать слова с помощью цифровой(поразрядной) сортировки,реализовал ее сам,вроде все компилиться,но не работает!
Вот код мой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "stdafx.h"
#include <iostream>
using namespace std;
struct words
{
    char c[3];
};
int _tmain(int argc, _TCHAR* argv[])
{ const int n=16;//Количество слов 
words *a=new words[n];//Структура символьных массивов
char buffer[4];//Буферная переменная
int d;//Количество разрядов в словах
strcpy(a[0].c, "COW");
strcpy(a[1].c, "DOG");
strcpy(a[2].c, "SEA");
strcpy(a[3].c, "RUG");
strcpy(a[4].c, "ROW");
strcpy(a[5].c, "MOB");
strcpy(a[6].c, "BOX");
strcpy(a[7].c, "TAB");
strcpy(a[8].c, "BAR");
strcpy(a[9].c, "EAR");
strcpy(a[10].c, "TAR");
strcpy(a[11].c, "DIG");
strcpy(a[12].c, "BIG");
strcpy(a[13].c, "TEA");
strcpy(a[14].c, "NOW");
strcpy(a[15].c, "FOX");
 
for (d=2;d<0;d--)
{cout<<"~~~~~~~~~~~~~~~~~~~"<<endl;
for (int i=0;i<n-1;i++)
{
    for (int j=i+1;j<n;j++)
        if (a[i].c[d]>a[j].c[d])
        {
            strcpy(buffer,a[i].c);
            strcpy(a[i].c,a[j].c);
            strcpy(a[j].c,buffer);
        }
}
for (int h=0;h<n;h++)
cout<<a[h].c<<"|"<<endl;
}
 
 
system("pause");
return 0;
}
Добавлено через 1 час 5 минут
Проблема в 30 ой строчке,подскажите что не так
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2011, 20:55     Ошибка в порязрядной сортировке?!
Посмотрите здесь:

Ошибка в задаче по сортировке массива в C++ C++ Builder
C++ Ошибка в сортировке
Ошибка в сортировке C++
Ошибка в пирамидальной сортировке C++
C++ Ошибка в быстрой сортировке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
10.04.2011, 21:17     Ошибка в порязрядной сортировке?! #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <windows.h>
#include <string.h>
using namespace std;
 
struct words
{
    char c[4];
};
 
int main()
{ 
    const int n=16;//Количество слов 
    words a[n] = {"COW","DOG","SEA","RUG","ROW","MOB","BOX","TAB","BAR","EAR","TAR","DIG","BIG","TEA","NOW","FOX"};
    char buffer[4];//Буферная переменная
    int d;//Количество разрядов в словах
 
    for (d=2;d>=0;d--)
    {
        for (int i=0;i<n-1;i++)
        {
            for (int j=i+1;j<n;j++)
                if (a[i].c[d]>a[j].c[d])
                {
                    strcpy(buffer,a[i].c);
                    strcpy(a[i].c,a[j].c);
                    strcpy(a[j].c,buffer);
                }
        }
        
    }
    for (int i=0;i<n;i++)
        cout<<a[i].c<<endl;
 
    system("pause");
    return 0;
}
Как то так.
REALIST07
Автор FAQ
Автор FAQ
 Аватар для REALIST07
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
10.04.2011, 21:26  [ТС]     Ошибка в порязрядной сортировке?! #3
А как теперь реализовать то же самое только для чисел?при этом неизвестно количество разрядов в диапазоне [3,2500] ?
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
10.04.2011, 21:46     Ошибка в порязрядной сортировке?! #4
Цитата Сообщение от REALIST07 Посмотреть сообщение
А как теперь реализовать то же самое только для чисел?при этом неизвестно количество разрядов в диапазоне [3,2500] ?
ну если после последнего значащего разряда будут нули а не компьютерный мусор то можно так же сравнивать.
Yandex
Объявления
10.04.2011, 21:46     Ошибка в порязрядной сортировке?!
Ответ Создать тему
Опции темы

Текущее время: 17:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru