Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/97: Рейтинг темы: голосов - 97, средняя оценка - 4.69
Quad
0 / 0 / 0
Регистрация: 30.10.2015
1

Сортировка строк файла по алфавиту

21.11.2010, 19:41. Просмотров 17753. Ответов 4
Метки нет (Все метки)

Здравствуйте. Необходимо отсортировать считать строки из файла, отсортировать их по алфавиту с помощью шейкер-сортировки, и вывести на экран. Вот что я смог написать, проблема именно в том, что я не могу понять как сортировать строки.
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
 
 
 
 
int main(void)
{
    char s[10][20];
    char *p[10];
    
    FILE *f;
    int i=1;
    int k=1;
    int m,N;
    
     char *buf;
    f = fopen ("input.txt", "r");
    
    while (!feof(f))
    {
    fscanf (f, "%s", s);
    i++;
    *p[i]=s[i][0];
    }
    
    
    fclose (f);
    
    
    do {
    N = 0;
    for(m=10; m > 0; --m) {
      if(strcmp(p[m-1],p[m])>0) {
        
          buf = p[m];
            p[m-1] = p[m];
            p[m] = buf;
       
        N = 1;
      }
    }
 
    for(m=1; m < 10; ++m) {
      if (strcmp(p[m-1],p[m])>0) {
     buf = p[m-1];
        p[m-1] = p[m];
        p[m] = buf;
        N = 1;
      }
    }
  } while(N);
    
    for (k=0; k<i; k++)
    {
    printf ("\t\t  %s \n", p[k]);
    }
    
    
    
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2010, 19:41
Ответы с готовыми решениями:

Сортировка по алфавиту (запись и чтения строк из файла на диске D)
Не получается сортировка по алфавиту (запись и чтения строк из файла на диске...

Сортировка строк по алфавиту
void alfavit() {int i,j; char m; for(j=0;j&lt;3;j++) for(i=0;i&lt;3-j;i++) {...

Ввод из файла набора слов и его сортировка по алфавиту
В принципе работает, но этот код просто ужасный. Подскажите, пожалуйста, как...

Сортировка строк из файла
Доброго времени суток. Программа сортирует, но выводит не так как хочется, см....

Считывание строк из файла и их сортировка
дана задача:Описать процедуру sortStrings(S0, S1), считывающую все строки из...

4
Mencey
151 / 98 / 12
Регистрация: 22.07.2010
Сообщений: 426
21.11.2010, 23:21 2
Лучший ответ Сообщение было отмечено как решение

Решение

Считывание из файла строк в массив
C
1
2
3
4
5
6
7
8
9
10
11
12
char strings[10][32], str[32];
FILE *f;
int count = 0;
if((f = fopen ("input.txt", "r") == NULL){
  return 1;
}
while (feof(f) == 0 || count > 10)
{
  fscanf (f, "%s", str);
  strcpy(strings[count++], str);
}
fclose (f);
Добавлено через 18 минут
Сортировка методом пузырька:
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 <stdio.h>
#include <string.h>
#include <conio.h>
 
int main(void)
{
    char strings[10][32], str[32];
    FILE *f;
    int count = 0, i, j;
    if((f = fopen ("input.txt", "r")) == NULL){
        return 1;
    }
    /* Считываем слова из файла */
    while (feof(f) == 0 || count > 10)
    {
        fscanf (f, "%s", str);
        strcpy(strings[count++], str);
    }
    fclose(f);
    /* Выводим считаные строки */
    for(i = 0; i < count; i++)
        printf("%s\n", strings[i]);
    putchar('\n');
    /* Сортировка методом пузырька */
    for(i = 1; i < count; i++)
        for(j = 0; j < count - i; j++)
            if(strcmp(strings[j], strings[j+1]) > 0){
                strcpy(str, strings[j]);
                strcpy(strings[j], strings[j+1]);
                strcpy(strings[j+1], str);
            }
    /* Выводим отсортированные строки */
    for(i = 0; i < count; i++)
        printf("%s\n", strings[i]);
    getch();
    return 0;
}
8
Quad
0 / 0 / 0
Регистрация: 30.10.2015
22.11.2010, 02:16 3
Mencey, огромное спасибо тебе!
0
cxemuch205
1 / 1 / 1
Регистрация: 31.10.2012
Сообщений: 46
17.01.2013, 00:26 4
Компилятор сам знает алфавит? Код класс! работает! просто хочу разобраться
0
alexlarichkin5
0 / 0 / 1
Регистрация: 05.03.2016
Сообщений: 106
26.06.2016, 07:32 5
А если вводить строку с клавиатуры, то как в ней отсортировать слова по алфавиту?
0
26.06.2016, 07:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2016, 07:32

Сортировка строк файла в алфавитном порядке
Совсем не разбираюсь в файлах(( Напишите пожалйуста, как можно провести...

Сортировка строк файла метод пузырька
Вот код, который сортирует числа из файла numbers.txt методом пузырька : ...

Сортировка по алфавиту
Добрый день. Существует массив структур такого типа: struct student { ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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