|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.02.2009, 16:57 | #1 |
Регистрация: 06.12.2008
Сообщений: 8
|
Пропуск строк программы (Си)
При пошаговой отладке обнаружила, что две строки просто пропускаются. Мой вопрос : почему?
Выделенные строки пропускаются. На всякий случай условие: Дана последовательность латинских букв, оканчивающаяся точкой. Среди элементов последовательности есть специальный символ, появление которого означает отмену предыдущего элемента. С учетом специального символа преобразовать последовательность. (задача на двусвязные списки) #include<stdlib.h> #include<conio.h> #include<stdio.h> #include<iostream.h> #include<math.h> FILE *fp,*fn; char fname[100], symbol; struct block {char bukva; block *pred; block *next;} *x,*r,*l,*c,*n; void del(block *p) { if(p==NULL) return; while((p->bukva)=='^'||p) {delete p; p=p->next;} } void del2(block *p) { if(p==NULL)return; while (p) {if (p->bukva=='^') c=p->pred; c->pred->next=p->next; p->next->pred=c->pred; delete c; delete p; p=p->next;} } void main() { printf("enter full filename"); scanf("%s", &fname); if((fp=fopen(fname,"r"))==NULL) { perror("file open error\n"); exit(0); } fscanf(fp,"%c",& symbol); l=new block; l->bukva=symbol; l->pred=NULL; r=l; fscanf(fp, "%c", &symbol); while(symbol!='.') {x=new block; x->bukva=symbol; x->pred=r; r->next=x; r=r->next; fscanf(fp, "%c", &symbol); } void del(block *l); void del2(block *l); fclose(fp); printf("enter new full filename"); scanf("%s",&fname); n=l; if((fn=fopen(fname,"w"))==NULL) { perror("file open error\n"); exit(0); } while(n->bukva) {fprintf(fn, "%c", n->bukva); n=n->next;} fclose(fn); getch(); } |
21.02.2009, 17:11 | #2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
persalena Попробуйте убрать перед ними void.
Это нужно только при объявлении функций, но не при вызове.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
21.02.2009, 17:28 | #3 |
Регистрация: 06.12.2008
Сообщений: 8
|
Если убрать, то компилятор ругается...
|
21.02.2009, 17:50 | #4 |
Регистрация: 06.12.2008
Сообщений: 8
|
говорит improper use of typedef 'block'
|
21.02.2009, 18:01 | #5 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Вот так надо:
Код:
Притом, если добавить в конец цикла строчку Код:
========== И еще замечание: Я пока со списками практически не работал, но не будет ли правильнее такая запись: Код:
================= upd: В первой функции, видимо, нужно так: Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] Последний раз редактировалось Sazary; 21.02.2009 в 18:16. |
21.02.2009, 18:16 | #6 | |
Регистрация: 06.12.2008
Сообщений: 8
|
ой, точно! тип же прописывать не надо... блин...
Цитата:
|
|
21.02.2009, 18:27 | #7 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Вот, возьмите ) Работает.
Вместо функций del и del2 написал новую. Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] Последний раз редактировалось Sazary; 21.02.2009 в 18:29. |
21.02.2009, 19:06 | #8 |
Регистрация: 06.12.2008
Сообщений: 8
|
у меня не работает... ну т.е не так как надо. В новом файле вместо букв - символы какие-то непонятные...
|
21.02.2009, 19:16 | #9 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
А что вы вводите?
Исходный файл: Код:
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
21.02.2009, 20:15 | #10 |
Регистрация: 06.12.2008
Сообщений: 8
|
у меня исходный ^a.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Матрица A состоит из 8 строк и 6 столбцов. вычесть из всех её строк, начиная со второй, первую строку | Dimak24 | Помощь студентам | 1 | 19.12.2008 15:45 |
Нумерация строк. QT 4 | NikLik | Qt и кроссплатформенное программирование С/С++ | 2 | 18.12.2008 22:38 |
Запуск программы на выполнение из другой программы. | ViNcHeStEr | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 18.06.2008 14:33 |
Пропуск условия if. Delphi 7 | Дикий | Помощь студентам | 11 | 12.05.2008 22:49 |
Excel max 256 строк VS user надо 300 строк | Exo | Microsoft Office Excel | 3 | 10.01.2008 17:14 |