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

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

24.02.2013, 09:36. Просмотров 1452. Ответов 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
Миниатюры
Получить последовательность символов, содержащую только последние вхождения каждого символа в строку  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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. Получить последовательность символов, содержащую...

3
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
1 / 1 / 3
Регистрация: 20.10.2012
Сообщений: 166
24.02.2013, 14:19  [ТС] 3
OdessaNA, эту ошибку учел, но программа все равно не работает, можешь еще код посмотреть потому что в анализе все правильно, препод принял, а вот тут возникли проблемы
0
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2013, 12:50

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

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

Получить из строк новую строку, содержащую первые 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 - 2021, vBulletin Solutions, Inc.