Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
ma6e4ka_1
0 / 0 / 0
Регистрация: 09.09.2011
Сообщений: 2
1

Построковая сортировка символьного массива

29.11.2011, 23:31. Просмотров 923. Ответов 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
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
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<ctype.h>
#include<string.h>
int main()
{
    FILE *in,*out;
    char string[255],*p;
    int i=0,j,k=0;
    char s[]= " ", mas[100][100],t[100];
        if ((out=fopen(".lab5.txt","wt"))==NULL)
        {
            printf("***Error-file -out can't open***\n");
            return 0;
        }
        else
        {
            do
            {
                printf("input string and click  ENTER:\n");
                printf("\n");
                gets(string);
                fputs(string,out);
                fputs("\n",out);
            }
            while (string[0]!='\0');
            fclose(out);
            if ((in=fopen(".\lab5.txt","rt"))==NULL)
            {
                printf("***Eror-file -in can't open!***\n");
                return 0;
            }
            else
            {
                char *str;
                do
                {
                     str=fgets(string,sizeof(string),in);
                     printf("%s",string);
                     printf("\n");
                     p=strtok(string,s);
 
                     while(p)
                     {         
                        printf(p);
                        strcpy(mas[i],p);
                        i++; 
                        k++;
                        printf("\n");
                        p=strtok(NULL,s);            
                    }           
               }    
              
               while (str!=NULL);   
                
               for (i=0; i<k; i++)
               printf( "%s  ",mas[i]);   
               for (i=0; i<k; i++)
               {
                   for (j=i; j<i+1; j++)
                   {
                       if (strcmp(mas[i], mas[i+1])<0)
                       {
                          strcpy (t, mas[i+1]);
                          strcpy (mas[i], mas[i+1]);
                          strcpy (mas[i+1], t);
                       }  
                   }
               }
              for (i=0; i<k; i++)
              printf( "%s  \n",mas[i]);     
              printf("%d",k)  ;     
              fclose(in);
        }
    }
    getch();
    return 0;
}
И жизнь была бы безмятежной и счастливой, если бы этот код еще бы работал. Как мне жить дальше?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2011, 23:31
Ответы с готовыми решениями:

Пузырьковая сортировка двумерного символьного массива
Передо мной была поставлена задача написать код, осуществляющий сортировку...

Сортировка символьного массива по строкам в порядке возрастания слов
Добрый вечер! Задали написать программу, удовлетворяющую следующему условию:...

Инициализация символьного массива
Всем Привет, Если инициализировать символьный массив данным способом char...

Чтение символьного массива
Нужно написать программу &quot;кодовый замок&quot; : вводишь разные символьные данные...

Запись символьного массива в файл
Пытаюсь записать строки в файл, но все крашится. Кто-нибудь подскажет что не...

2
Сыроежка
Заблокирован
29.11.2011, 23:35 2
ma6e4ka_1,

Есть стандартная функция qsort, которая выполняет сортировку.
0
accept
4835 / 3257 / 464
Регистрация: 10.12.2008
Сообщений: 10,569
30.11.2011, 15:19 3
Цитата Сообщение от Сыроежка
Есть стандартная функция qsort, которая выполняет сортировку.
к которой нужно написать небольшую функцию сравнения на основе стандартной функции сравнения
да у ней там есть сортировка
проблема в считывании слов

Цитата Сообщение от ma6e4ka_1
если бы этот код еще бы работал
он вообще неправильный
нужно считывать слово и копировать его в динамическую память, а указатель на динамическую память сохранять в массив указателей, который потом сортировать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2011, 15:19

Считывание чисел из символьного массива
Есть две строки вида Text1='1 4 45 769 12' и Text2='2 4 3 89 1' (числа...

Странный вывод символьного массива
Добрый вечер. Есть код на Си: #include &lt;stdio.h&gt; void substring (const char...

Передача символьного массива в функцию
На лекции по Си преподаватель говорил, что при передаче символьного массива в...


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

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

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