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

Сортировка символов

30.03.2010, 19:18. Просмотров 410. Ответов 2
Метки нет (Все метки)

Всем добрый вечер. Возникла проблема. У меня есть код программы на C, и работает она над целыми числами. Мне надо сделать, чтобы она работала с символами (символ или строка символов - не важно). Но при попытке переделать программа бьёт ошибку.
Вот код
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void sort_bubl(int *x, int n);
void sort_min(int *x, int n);
void sort_sh(int *x, int n);
int menu();
void main()
{
 
    int b[10];
    int i;
        for (i=0;i<10;i++)
        {
        printf("Vvedite element [%d]\n",i+1);
        scanf("%d",b+i);
        }
    while(1)
    {
        switch(menu())
        {
        case 1:
        sort_bubl(b,10);
        printf("\nOtsortirovani massiv: \n", i+1);
            for(i=0;i<10;i++)
            printf("%d\n", *(b+i));
        break;
        case 2:
        sort_min(b,10);
        printf("\nOtsortirovani massiv: \n", i+1);
            for(i=0;i<10;i++)
            printf("%d\n", *(b+i));
        break;
        case 3:
        sort_sh(b,10);
        printf("\nOtsortirovani massiv: \n", i+1);
            for(i=0;i<10;i++)
            printf("%d\n", *(b+i));
        break;
        break;
        }
    }
 
}
int menu()
{
    int ch;
    do{
        printf("\n Menu: \n");
        printf("1. Sortirovka metodom puzur`ka: \n");
        printf("2. Sortirovka metodom min element: \n");
        printf("3. Sortirovka metodom Shella: \n");
        printf("4. Exet\n");
        printf("\t Vash vibor:");
        scanf("%d",&ch);
    }
    while(ch>4);
    return ch;
}
void sort_bubl(int *x, int n)
{
int i,j,buf;
for(i=0;i<10;i++)
    for(j=0;j<9-i;j++)
        if(*(x+j)>*(x+j+1))
            {
            buf=*(x+j);
            *(x+j)=*(x+j+1);
            *(x+j+1)=buf;
            }
}
void sort_min(int *x, int n)
{
int i,j,k,buf;
for(i=0;i<9;i++)
    {
        for(k=i,j=i+1;j<n;j++)
            if(*(x+j)<*(x+k)) k=j;
                buf=*(x+k);*(x+k)=*(x+i);*(x+i)=buf;
    }
}
void sort_sh(int *x, int n)
{
    int i,j;
    int buff;
    int gap;
    int sorted;
    for(gap=n/2;gap>0;gap/=2)
        do{
            sorted=0;
            for(i=0,j=gap;j<n;i++,j++)
                if(*(x+i)>*(x+j))
                {
                    buff=*(x+j);*(x+j)=*(x+i);*(x+i)=buff;
                sorted=1;
                }
        }while(sorted);
}
Надеюсь мне помогут.

Добавлено через 35 минут
Спасибо за внимание. Справился сам.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2010, 19:18
Ответы с готовыми решениями:

Сортировка символов в строке по частоте их встречаемости
Помогите разобраться с кодом. Ошибка возникает на этапе суммирования частоты встречаемости...

Дана последовательность символов x1, x2, ., xn. Выясните, есть ли среди символов этой последовательности пара символов
Дана последовательность символов x1, x2, ..., xn. Выясните, есть ли среди символов этой...

Дана последовательность символов x1, x2, ., xn. Выясните, есть ли среди символов этой последовательности пара символов
Дана последовательность символов x1, x2, ..., xn. Выясните, есть ли среди символов этой...

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

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

2
Inadequate
Retired
7713 / 2545 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
30.03.2010, 19:22 2
Cyanide, справился сам, помоги другим, запостив верный код в теме.
1
Cyanide
0 / 0 / 1
Регистрация: 10.10.2009
Сообщений: 59
31.03.2010, 09:51  [ТС] 3
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void sort_bubl(char *x, char n);
void sort_min(char *x, char n);
void sort_sh(char *x, char n);
int menu();
void main()
{
 
        char b[10];
        char i;
                for (i=0;i<10;i++)
                {
                printf("Vvedite element [%d]\n",i+1);
                scanf("%s",b+i);
                }
        while(1)
        {
                switch(menu())
                {
                case 1:
                sort_bubl(b,10);
                printf("\nOtsortirovani massiv: \n", i+1);
                        for(i=0;i<10;i++)
                        printf("%c\n", *(b+i));
                break;
                case 2:
                sort_min(b,10);
                printf("\nOtsortirovani massiv: \n", i+1);
                        for(i=0;i<10;i++)
                        printf("%c\n", *(b+i));
                break;
                case 3:
                sort_sh(b,10);
                printf("\nOtsortirovani massiv: \n", i+1);
                        for(i=0;i<10;i++)
                        printf("%c\n", *(b+i));
                break;
                break;
                }
        }
 
}
int menu()
{
        int ch;
        do{
                printf("\n Menu: \n");
                printf("1. Sortirovka metodom puzur`ka: \n");
                printf("2. Sortirovka metodom min element: \n");
                printf("3. Sortirovka metodom Shella: \n");
                printf("4. Exet\n");
                printf("\t Vash vibor:");
                scanf("%d",&ch);
        }
        while(ch>4);
        return ch;
}
void sort_bubl(char *x, char n)
{
int i,j;
char buf;
for(i=0;i<10;i++)
        for(j=0;j<9-i;j++)
                if(*(x+j)>*(x+j+1))
                        {
                        buf=*(x+j);
                        *(x+j)=*(x+j+1);
                        *(x+j+1)=buf;
                        }
}
void sort_min(char *x, char n)
{
int i,j,k;
char buf;
for(i=0;i<9;i++)
        {
                for(k=i,j=i+1;j<10;j++)
                        if(*(x+j)<*(x+k)) k=j;
                {
                                buf=*(x+k);*(x+k)=*(x+i);*(x+i)=buf;
                }
        }
}
void sort_sh(char *x, char n)
{
        int i,j;
        char buff;
        int gap;
        int sorted;
        for(gap=n/2;gap>0;gap/=2)
                do{
                        sorted=0;
                        for(i=0,j=gap;j<10;i++,j++)
                                if(*(x+i)>*(x+j))
                                {
                                        buff=*(x+j);*(x+j)=*(x+i);*(x+i)=buff;
                                sorted=1;
                                }
                }while(sorted);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2010, 09:51

Дана строка символов, вывести последовательности символов, заключенные в скобки
(Помогите,пожалуйста) Дана строка символов. Признак конца-символ '\n'(перевод строки). Необходимо...

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

Ввести строку символов, посчитать количество символов, не являющихся буквами английского алфавита
Ввести строку символов, если ее длина &gt;6, то посчитать количество символов, не являющихся буквами...


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

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

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