Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
den4ik_fpmi
1 / 1 / 3
Регистрация: 20.10.2012
Сообщений: 166
1

Получить последовательность символов, содержащую только последние вхождения каждого символа в строку

24.02.2013, 09:36. Просмотров 705. Ответов 3
Метки нет (Все метки)

вот такая задача:
Дана последовательность символов s1, s2, ..., sn (n >= 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
#include<stdio.h>
#include<conio.h>
FILE *fp;
struct elem
{char el; elem *next;};
void main()
{elem *p,*s,*a,*z,*k,*m;
fp=fopen("data.txt","r");
p=new elem; 
p->next=NULL; 
s=p;
while(fscanf(fp,"%c",&(s->el))!=EOF)
{s->next=new elem; a=s; s=s->next; s->next=NULL;};
a->next=NULL;
delete s;
s=a;
delete a;
a=NULL;
fclose(fp);
z=p;
k=p;
while(p!=s)
{m=p->next;
a=m;
while(m!=NULL)
{if (p==m) {k->next=p->next; delete p; p=m;};
m=m->next;}
if (z==NULL) z=a;
k=p;
p=a;}
fp=fopen("rezult.txt","w");
while(z!=NULL)
{fprintf(fp,"%c ",z->el);
z=z->next;};
fclose(fp);}
и при выполнении вылетает вот такая ошибка(скрин)
0
Миниатюры
Получить последовательность символов, содержащую только последние вхождения каждого символа в строку  
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2013, 09:36
Ответы с готовыми решениями:

Получить новую строку, содержащую первые N1 символов строки S1 и последние N2 символов строки S2
Даны целые положительные числа N1 и N2 и строки S1 и S2. Получить из этих строк новую строку,...

Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0
Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0. ...

После 1-го символа каждого слова вставить последовательность символов
Задание: Раздвинуть заданный текст, вставив введенную с клавиатуры последовательность символов...

Получить последовательность символов, содержащую только последние вхождения каждого символа
Даны натуральное число n, символы s1, ... , sn. Получить последовательность символов, содержащую...

Даны натуральное число n, символы s1,.,sn. Получить последовательность символов, содержащую только последние вхождения каждого символа
Даны натуральное число n, символы s1,...,sn. Получить последовательность символов, содержащую...

3
OdessaNA
19 / 19 / 6
Регистрация: 10.01.2011
Сообщений: 241
24.02.2013, 10:17 2
Без проверки кода - синтаксическая ошибка в Вашей строке 13:
C++
1
{s->next=new elem; a=s; s=s->next; s->next=NULL;};
точка с запятой.

Добавлено через 11 минут
Что бы Вам было легче найти свои ошибки - привел Ваш код в удобочитаемый вид:
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
#include<stdio.h>
#include<conio.h>
 
FILE *fp;
 
struct elem
{
    char el; 
    elem *next;
};
 
void main()
{
    elem *p,*s,*a,*z,*k,*m;
 
    fp=fopen("data.txt","r");
 
    p=new elem; 
    p->next=NULL; 
    s=p;
 
    while(fscanf(fp,"%c",&(s->el))!=EOF)
    {
        s->next=new elem; 
        a=s; s=s->next; 
        s->next=NULL;
    };
 
    a->next=NULL;
 
    delete s;
    s=a;
 
    delete a;
    a=NULL;
 
    fclose(fp);
 
    z=p;
    k=p;
 
    while(p!=s)
    {
        m=p->next;
        a=m;
 
        while(m!=NULL)
        {
            if (p==m)
            {
                k->next=p->next; 
                delete p; 
                p=m;
            };
            m=m->next;
        }
 
        if (z==NULL) 
            z=a;
 
        k=p;
        p=a;
    }
 
    fp=fopen("rezult.txt","w");
 
    while(z!=NULL)
    {
        fprintf(fp,"%c ",z->el);
        z=z->next;
    };
 
    fclose(fp);
}
0
den4ik_fpmi
1 / 1 / 3
Регистрация: 20.10.2012
Сообщений: 166
24.02.2013, 14:19  [ТС] 3
OdessaNA, эту ошибку учел, но программа все равно не работает, можешь еще код посмотреть потому что в анализе все правильно, препод принял, а вот тут возникли проблемы
0
den4ik_fpmi
1 / 1 / 3
Регистрация: 20.10.2012
Сообщений: 166
27.02.2013, 12:50  [ТС] 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
#include<stdio.h>
#include<conio.h>
 FILE *fp;
 struct elem
{    char el; 
    elem *next;};
 
void main()
{   elem *p,*s,*a,*z,*k,*m;
    fp=fopen("data.txt","r");
    p=new elem; 
    p->next=NULL; 
    s=p;
    while(fscanf(fp,"%c",&(s->el))!=EOF)
    {   s->next=new elem; 
        a=s; s=s->next; 
        s->next=NULL;    }
    a->next=NULL;
    delete s;
    s=a;
    delete a;
    a=NULL;
    fclose(fp);
    z=p;
    k=p;
    while(p!=s)
    {   m=p->next;
        a=m;
        while(m!=NULL)
        {if (p==m)
            {   k->next=p->next; 
                delete p; 
                p=m; };
            m=p->next;         }
         if (z==NULL) 
            z=a;
        k=p;
        p=a;   }
    fp=fopen("rezult.txt","w");
     while(z!=NULL)
    {   fprintf(fp,"%c ",z->el);
        z=z->next;    }
     fclose(fp);}
теперь при выполнение программы происходит зацикливание, ПОМОГИТЕ КТО МОЖЕТ, ЗАВТРА УЖЕ СДАВАТЬ ЗАДАЧУ!
0
27.02.2013, 12:50
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2013, 12:50

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

Получить из данных строк S1 и S2 новую строку, содержащую первые N1 символов S1 и последние N2 символов S2
Даны целые положительные числа N1 и N2 и строки S1 и S2. Получить из этих строк новую строку,...

Получить новую строку, содержащую первые N1 символов строки S1 и последние N2 символов строки S2
Даны целые положительные числа N1 и N2 и строки S1 и S2. Получить из этих строк новую строку,...


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

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

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