Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
#1

Не работает функция. Списки. - C++

15.05.2011, 14:46. Просмотров 359. Ответов 5
Метки нет (Все метки)

Всем доброго времени суток.
Буду очень благодарна, если поможете)
Задача такова: создать 2х связный символьный (буквенный) список и заменить в нем символы "a" "e" "u" на "b" "f " "v"
В написанном мною коде все вроде бы работает, кроме основной функции, в которой я никак не могу найти причину неисправности(, а именно функция ZAMENA
Подскажите, что не так!))



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
#include "stdio.h"
#include "string.h"
typedef struct ft { char val;
ft *next;
ft *prev;};
 
ft *ins (ft *c)
{
ft *h=new (ft);
if (c==NULL) { h->next=NULL;
h->prev=NULL;}
else { h->next=NULL;
h->prev=c;
c->next=h;}
return h;
}
 
void showall (ft *c)
{
if (c!=NULL){
while (c->prev!=NULL) c=c->prev;
while (c->next!=NULL) { printf ("%4c", c->val);
c=c->next;}
printf ("%4c", c->val);}
else printf ("\n Spisok pust\n");
}
 
void zamena(ft*c)
{
while (c->prev!=NULL) c=c->prev;
 
{
if (c->val=='a') c->val='b';
if (c->val=='e') c->val='f';
if (c->val=='u') c->val='v';
}
}
 
 
void main ()
{
char x;
 
 
ft *c=NULL;
 
do { printf ("vvedite simvol: ");
scanf ("%c",&x);
c=ins(c);
c->val=x;
 
}
 
while (x!='1');
printf ("\nIshodnii spisok\n");
showall (c);
printf ("\konechnui spisok\n");
zamena (c);
showall (c);
 
}

Список вводится и формируется до нажатия символа "1"

Добавлено через 15 часов 26 минут
Кто нибудь, пожалуйста, подскажите, где ошибка!!!????????
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2011, 14:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает функция. Списки. (C++):

Функция cin.get(array, 80) работает в одной программе, но не работает в другой - C++
Добрый день. Я что то совсем запутался, одна и та же функция в одной программе работает, а в другой нет. В этой программе...

Начал осваивать списки. Не работает вывод на экран. - C++
Вот такой пример нашел в интернете: #include <iostream> using namespace std; struct Item { int info; int...

Что не так с кодом? Компилируется, но не работает (связные списки) - C++
#include "stdio.h" #include "stdlib.h" #include <string.h> #include "iostream" using namespace std; class Elem { ...

Не могу понять почему программа работает некорректно (односвязные списки) - C++
Построить однонаправленный список чисел. Затем исключить из него все повторы чисел, оставить каждое число в списке в единственном...

Списки, как склеить списки между собой? - C++
Ребят, привет всем, есть код, в классе которого описаны несколько методов: добавление элемента в список, удаление и просмотр списка, дак...

Не работает функция - C++
Добрый день. Потихоньку изучаю ООП. И столкнулся с такой проблемой: Есть два файла: 1)#include "BOOK.h" int main() { ...

5
kazak
3038 / 2359 / 157
Регистрация: 11.03.2009
Сообщений: 5,405
Завершенные тесты: 1
15.05.2011, 14:58 #2
Довольно странная реализация.

Цитата Сообщение от enotik Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
void zamena(ft*c)
{
   while (c->prev!=NULL) 
   c=c->prev;
   {
      if (c->val=='a') c->val='b';
      if (c->val=='e') c->val='f';
     if (c->val=='u') c->val='v';
   }
}
Попробуй так
C
1
2
3
4
5
6
7
8
9
10
void zamena(ft*c)
{
   while (c->prev!=NULL) 
   {
      if (c->val=='a') c->val='b';
      if (c->val=='e') c->val='f';
      if (c->val=='u') c->val='v';
      c=c->prev;
   }
}
0
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
15.05.2011, 23:32  [ТС] #3
Так тоже не работает, выводит исходный список и в качетсве результата опять же исходный список(((

Добавлено через 4 часа 3 минуты
Кто-нибудь, пожалуйста, гже ошибка?(
0
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
16.05.2011, 10:41 #4
C++
1
2
3
typedef struct ft { char val;
ft *next;
ft *prev;};
C++
1
2
3
4
struct ft {
    char val;
    ft *next, *prev;
};
typedef неправильно сделан

C++
1
printf ("\konechnui spisok\n");
ошибка
1
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
16.05.2011, 23:29  [ТС] #5
C++
1
printf ("\konechnui spisok\n");
ошибка[/QUOTE]

А в чем??

Добавлено через 59 минут
?????

Добавлено через 1 час 26 минут
????????
0
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.05.2011, 01:45 #6
C++
1
printf("konechnui spisok\n");
1
17.05.2011, 01:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2011, 01:45
Привет! Вот еще темы с ответами:

Не работает функция - C++
#include <iostream> using namespace std; int main() { system("color 4"); base(4); system("pause"); return...

Не работает функция - C++
Не работает функция write класса Losers. Вызов происходит в 60-й строчке. #include <iostream> #include <string> #include <iomanip>...

Не работает функция в С++ - C++
Всем привет! Вот мне надо написать функцию, которая находит максимальное среди трёх введённых чисел. Я вот накинул программку и прошу...

Не работает функция - C++
// Example program #include <iostream> #include <string> #include <cmath> using namespace std; int main() { float x=0.2; ...


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

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

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