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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.67
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
#1

Сортировка слов по алфавиту методом выбора. - C++

27.11.2009, 18:30. Просмотров 6010. Ответов 25
Метки нет (Все метки)

Как это дело реализовать?
Задать числовое значение каждой букве в алфавите или же использовать аски ?
Посоветуйте)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2009, 18:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка слов по алфавиту методом выбора. (C++):

Сортировка по алфавиту методом выбора - C++
Дана база данных которая записана в текстовый файл,нужно отсортировать определенное поле по русскому алфавиту методом выбора, подскажите...

Сортировка массива слов методом прямого выбора - C++
Помогите пожалуйста сделать сортировку массива слов методом прямого выбора. То есть у меня есть массив слов, и мне сначала для сортировки...

Упорядочить заданную последовательность символов по алфавиту методом выбора - C++
нужно составить сортировку символов по алфавиту методом выбора.Можно полный код.

Сортировка слов по алфавиту - C++
Здравствуйте уважаемы программисты. Необходимо отсортировать слова по алфавиту. #include "stdio.h" #include "conio.h" #include...

Сортировка слов по алфавиту - C++
MFC GUI. Собственно в чем задача:Нужно прочитать слова из файла, отсортировать их по алфавиту методом выбора и записать в новый файл. ...

Сортировка слов по алфавиту - C++
Всем привет, помогите мне пожалуйста с сортировкой слов по алфавиту, словом считают группу символов между двумя пробелами. Упорядочить...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
R0mm
Псевдо программист
192 / 113 / 15
Регистрация: 19.09.2009
Сообщений: 303
28.11.2009, 10:31 #2
Цитата Сообщение от atomlex Посмотреть сообщение
Задать числовое значение каждой букве в алфавите или же использовать аски ?
без разницы.
0
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
28.11.2009, 11:15 #3
числовое значение быстрее и легче.Imho
0
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
28.11.2009, 21:56  [ТС] #4
Вычитал, что есть еще кроме этого функция сортировки строк..никто не знает?
0
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
01.12.2009, 23:26  [ТС] #5
Народ, помогите.
0
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
01.12.2009, 23:28 #6
atomlex, С++ std::sort(...) в С вроде qsort
0
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
06.12.2009, 18:10  [ТС] #7
На примере как-нибудь можно?
0
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
06.12.2009, 19:50 #8
Сортировка слов где? В строке? В файле? На луне?
0
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
06.12.2009, 19:53  [ТС] #9
Читается текст из файла, сортируются слова из файла, отсортированные слова записываются в новый файл.
0
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
07.12.2009, 08:10 #10
Записать слова в массив.
Элементы массива - строки.
Сравнивать строки можно с помощью функции strcmp().
0
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
07.12.2009, 16:46  [ТС] #11
Про функцию strcmp() я знаю, только не представляю как ее пропипысать валгоритм сортировки выбором, т.е. как будет выглядеть при этом код.
0
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
07.12.2009, 23:48  [ТС] #12
При линковке выходят следующие ошибки:
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/alfavit.exe : fatal error LNK1120: 1 unresolved externals

Как их лечить?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream.h>
#include<stdio.h>
#include <string.h>
void selection(int* a, int m)
{ 
char b1[] = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
char b2[256];
int i,j,k,min;
   for(i=0;i<m-1;i++)
   {min=i;
   printf("vvedite");
   gets(b2);
for (j=i+1; j<m; j++)
    if(strcmp(b1, b2)>0) min=j;
        k=a[min];
        a[min]=a[i];
        a[i]=k;
   }
}
0
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
08.12.2009, 20:53  [ТС] #13
С той ошибкой разобрался.Программа компилируется.Правда после ввода строки, вылетает с ошибкой "инструкция по адресу "00х000" обратилась к памяти по адресу"000х00".Память не может быть Read.
Ошибка в использовании strcmp, видимо..

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
 #include <iostream.h>
#include<stdio.h>
#include <string.h>
 
 
 
void main(int* a, char m) 
{ 
 
 
char alf[] = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
char str[256];
 
char i,j,k,min;
 
   for(i=0;i<m-1;i++)
   {
       
       min=i;
   printf("vvedite:   ");
   gets(str);
 
 
for (j=i+1; j<m; j++)
    if(strcmp(alf, str)>0)
        puts("sortirovka   ");
        min=j;
        k=a[min];
        a[min]=a[i];
        a[i]=k;
   }
 
}
0
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
13.12.2009, 20:08  [ТС] #14
Товарищи программисты!Мне нужна ваша помощь.
0
easybudda
Модератор
Эксперт CЭксперт С++
9625 / 5573 / 947
Регистрация: 25.07.2009
Сообщений: 10,709
13.12.2009, 22:39 #15
Пишет в выходной файл все слова в одну строку в алфавитном порядке
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
 
/* сортировка слов. */
 
int wrdcmp(const void *a, const void *b){
    return strcmp(*(char**)a, *(char**)b);
}
 
/* если вызывается без аргументов, входной файл - stdin, ввод заканчивается по Ctrl+D (UNIX) Ctrl+Z Enter (Win), 
*   иначе первый аргумент - имя файла. По аналогии второй аргумент - имя выходного файла, или stdout */
int main(int argc, char **argv){
    char **words, *pWord, wrd_buf[BUFSIZ];
    int c, inword;
    size_t count, i;
    FILE *fin, *fout;
    
    if ( argc > 1 ){
        if ( (fin = fopen(argv[1], "r")) == NULL ){
            perror("Can't open input file!\n");
            exit(1);
        }
    }
    else
        fin = stdin;
        
    words = NULL;
    inword = 0;
    count = 0;
    *wrd_buf = '\0';
    pWord = wrd_buf;
    while ( ( c = fgetc(fin) ) != EOF ){
        if ( isspace(c) || ispunct(c) ){
            if ( inword ){
                *pWord = '\0';
                if ( (words = (char**)realloc(words, sizeof(char*) * (count + 1))) == NULL ){
                    perror("Memory error!\n");
                    exit(1);
                }
                if ( (words[count] = strdup(wrd_buf)) == NULL ){
                    perror("Memory error!\n");
                    exit(1);
                }
                count++;
                inword = 0;
                pWord = wrd_buf;
                *pWord = '\0';
            }
        }
        else {
            *pWord++ = (unsigned char)c;
            inword = 1;
        }   
    }
    fclose(fin);
    
    if ( !words ){
        fprintf(stderr, "No words found!\n");
        exit(1);
    }
    
    if ( argc > 2 ){
        if ( (fout = fopen(argv[2], "w")) == NULL ){
            perror("Can't open output file!\n");
            exit(1);
        }
    }
    else
        fout = stdout;
    
    qsort((void*)words, count, sizeof(char*), wrdcmp);
    
    for ( i = 0; i < count; i++ )
        fprintf(fout, "%s ", words[i]);
    fprintf(fout, "\n");
    
    fclose(fout);
    for ( i = 0; i < count; i++ )
        free(words[i]);
    free(words);
    exit(0);
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2009, 22:39
Привет! Вот еще темы с ответами:

Сортировка слов из массива по алфавиту - C++
Помогите пожалуйста найти ошибку. Неправильно сортирует слова. #include&lt;iostream&gt; using namespace std; const int n=4; ...

Сортировка слов в предложении по алфавиту - C++
доброго времени суток! у меня такая проблема - нужно распечатать в алфавитном порядке слова из предложения. так вот, когда на английском...

Сортировка слов в строке по алфавиту - C++
Собственно вот задание:Определить класс-строку. В класс включить два конструктора: для опре-деления класса строки строкой символов и путем...

Сортировка слов в строке по алфавиту - C++
Дана строка из слов через пробел.Надо рассортировать слова по алфавиту и распечатать новую строку. Использовать библиотеки iostream и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.12.2009, 22:39
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru