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

Ошибка: error C2143 функция void deleteEnd(void)

23.09.2014, 07:38. Просмотров 565. Ответов 7
Метки нет (Все метки)

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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define MAXNAME 56
struct tagBook
{
    char name[MAXNAME];
    char autor[MAXNAME];
    int imprint;
    
    struct tagBook *pnext,*pprev;
 
 
};
 
typedef struct tagBook Book;
 
void safeList(Book *p,char *file)
{
    FILE *pf=fopen(file,"a+");
 
    while(p!=NULL)
    {
        fwrite(p,sizeof(Book),1,pf);
        p=p->pnext;
    }
    fclose(pf);
    printf("\nSohranenie uspeshno zavershino  : %s",__TIMESTAMP__ );
 
}
void printList(Book *p)
{
    while(p!=NULL)
    {
        print(p);
        p=p->pnext;
    
    }
   
}
 
 Book* addEnd(Book *p,Book *end)
{
    Book *pAdd=(Book*)malloc(sizeof(Book));
    *pAdd=*p;
 
    if (end==NULL)end=pAdd;
    else
    {
        end->pnext=pAdd;
        pAdd->pprev=end;
        end=pAdd;
    
    }
 
    return end;
 
}
 
void getUser(Book *p)
    {
       Book tmp;
        
        printf("\n Vvedite nazvanie knigi : ");
        scanf("%s",tmp.name);
 
        printf("\n Vvedite autora knigi : ");
        scanf("%s",tmp.autor);
 
        printf("\n Vvedite god izdania : ");
        scanf("%d",&tmp.imprint);
 
    
        tmp.pnext = tmp.pprev = NULL;
        *p=tmp;
    
    
 
    }
void print(Book *p)
    {
          printf("\t\nNazvanie knigi : %s \nAutor knigi : %s \nGod izdania : %d\n",p->name,p->autor,p->imprint);
     
    }
Book* deleteEnd(Book *begin,Book *end)
{
 int year=0;
 Book *cur=NULL,*temp=NULL; 
 cur=begin;
 
 
 printf(" Informaciya o knigah s godom izdaniya\n men'she vvedennogo bydet ydalena\n\n Vvedite god: ");
 scanf("%d",&year);
 while (year <= 0)
   {printf("OSHIBKA: god ne mozhet but' <0 ili =0, vvedite zanovo: ");
    scanf("%d",&year);}
 while (cur != NULL) //ïîêГ* Г*ГҐ äîéäåì äî ГЄГ®Г*Г¶Г* Г±ГЇГЁГ±ГЄГ*
   {if(cur->imprint < year)  //Г±Г°Г*ГўГ*ГЁГўГ*ГҐГ¬ ãîä èçäГ*Г*ГЁГї Г± ââåäåГ*Г*ûì
       {if (cur == begin)   //åñëè Г§Г*ГЇГЁГ±Гј ïåðâГ*Гї
        {begin=cur->pnext;  //ГІГ® ïåðâîé áóäåò âòîðГ*Гї Г§Г*ГЇГЁГ±Гј Гў Г±ГЇГЁГ±ГЄГҐ
         begin->pprev=NULL;
         free(cur); //Гў ГЄГ®Г*ГҐГ¶ Г±ГЇГЁГ±ГЄГ*
         cur=begin; }
        else  if (cur==end)//åñëè Г§Г*ГЇГЁГ±Гј ïîñëåäГ*ГїГї
               {end=cur->pprev;
            end->pnext=NULL; //ïðåäïîñëåäГ*ГїГї Г§Г*ГЇГЁГ±Гј Г±ГІГ*Г*îâèòñÿ ïîñëåäГ*ГҐГ©
            free(cur);  //ГіГ¤Г*ëÿåì ïîñëåäГ*Гѕ Г§Г*ГЇГЁГ±Гј
            cur=end;}
               else //ГіГ¤Г*ëåГ*ГЁГҐ ГЁГ§ ñåðåäèГ*Г»
               {cur->pnext->pprev=cur->pprev;
                cur->pprev->pnext=cur->pnext;
                temp=cur;
                cur=cur->pnext;
                free(temp);} //ГіГ¤Г*ÿëåì Г§Г*ГЇГЁГ±Гј
     } else cur=cur->pnext; //åñëè ãîä áîëüøå, ГІГ® ïåðåõîäèì Гі ñëåäóþùåé Г§Г*ГЇГЁГ±ГЁ Гў Г±ГЇГЁГ±ГЄГҐ
    }
  printf("\n\n Informaciya ydalena ");
  return cur;
 
}
void main()
{
    int n=0;
    Book emp;
    Book *begin=NULL, *end=NULL;
 
L:  printf("\n\n1.Sozdanie spiska\n2.Prosmotr spiska\n3.Dobavit knigu\
        \n4.Korrektirovka\n5.Sohranit v file \n7.Vihod \n");
    printf("Input numer : ");
    scanf("%d",&n);
 
    switch(n)
    {
    case 1:getUser(&emp);
            end=addEnd(&emp,end);
            if (begin==NULL)begin=end;
            break;
    case 2:printList(begin);break;
    case 3:printf("\nVvedite dannie o novoy knige\n");
            getUser(&emp);
            end=addEnd(&emp,end);
            if (begin==NULL)begin=end;
            break;
    case 4:void deleteEnd(void);break;
                                           
 
    case 5:safeList(begin,"list.data");break;       
    
    case 6: exit(0);break;
    default:printf("\nNe pravilno nabran nomer!!!!!\a\a\a");
     
    }
    goto L;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2014, 07:38
Ответы с готовыми решениями:

Реализовать аналог `void *memmove(void *to, void *from, size_t n)`
Добрый день, подскажите пожалуйста, как реализовать такой метод самостоятельно? который копирует...

Функция записи из структуры в массив - Error: void value not ignored as it ought to be
И вроде бы все хорошо, да вот только с функцией toArray (функция из структуры записывает данные в...

Возможна ли инициализация связного списка в функции void (void)?
Всем привет. В связи с полученным в универе заданием возник вопрос, а возможна ли в принципе...

Функция void на си
Помогите задать функцию void в коде. #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt;...

Функция void delete". Требуется идентификатор
В общем, ругается на функцию void delete, не понимаю почему. Помогите исправить. #include...

7
HighPredator
5693 / 2014 / 723
Регистрация: 10.12.2010
Сообщений: 5,791
Записей в блоге: 3
23.09.2014, 09:06 2
Строка 145. Вы там объявили функцию в функции. Нельзя. Вы наверное хотели вызвать уже существующую, но она у вас по-другому описана.
0
kolyaz
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
23.09.2014, 10:01  [ТС] 3
C
1
case 4: deleteEnd(begin,end );break;
я думаю что так но всё равно не работает
0
HighPredator
5693 / 2014 / 723
Регистрация: 10.12.2010
Сообщений: 5,791
Записей в блоге: 3
23.09.2014, 10:40 4
Цитата Сообщение от kolyaz Посмотреть сообщение
я думаю что так но всё равно не работает
Ошибки времени компиляции есть?
0
kolyaz
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
23.09.2014, 12:54  [ТС] 5
Ошибку с2143 устранил и функция вроде работает , но вылетает при просмотре структуры после удаления
0
kolyaz
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
23.09.2014, 13:00  [ТС] 6
Вот файл
0
Вложения
Тип файла: zip c.zip (2.2 Кб, 2 просмотров)
HighPredator
5693 / 2014 / 723
Регистрация: 10.12.2010
Сообщений: 5,791
Записей в блоге: 3
23.09.2014, 13:26 7
Цитата Сообщение от kolyaz Посмотреть сообщение
вылетает при просмотре структуры после удаления
Если вы все удалили, то что вы хотите просмотреть?
0
kolyaz
1 / 1 / 1
Регистрация: 13.08.2014
Сообщений: 65
23.09.2014, 13:35  [ТС] 8
Структура содержит название книги, автора, год издания. Удалить издания с годом меньше заданного
0
23.09.2014, 13:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2014, 13:35

Функция void poisk (FILE*nf) не ищет в списке элемент
Функция void poisk(FILE*nf) не ищет в списке элемент,выдаёт нули (если это не первый по порядку...

Ошибка void value not ignored as it ought to be
Выдается следующая ошибка в функции zamena 56 строчка Помогите #include &lt;stdio.h&gt; #include...

Если функция не принимает аргументов, то принято ли писать в её заголовке void?
Если функция не принимает аргументов, то принято ли писать в её заголовке void? Например, вместо:...


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

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

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