Ошибка: error C2143 функция void deleteEnd(void) - C (СИ)
Формулировка задачи:
#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;
}Решение задачи: «Ошибка: error C2143 функция void deleteEnd(void)»
textual
Листинг программы
case 4: deleteEnd(begin,end );break;