Что у меня не так??
Код: Выделить всё
struct list
{
char c[20];
char x[10];
list *next;
}*p,*top,*prev,*cur;
void show();
void push(); // for fio;
void push2(); // for marks
char n;
int main()
{
top=NULL;
char key,value;
int done=false;
while(!done)
{
system("cls");
show();
printf("\nA)dd\nQ)uit\n");
key=getchar();
switch(toupper(key))
{
case 'A':
push();
push2();
break;
case 'Q':
done=true;
break;
}
}
return 0;
}
void push()
{
printf("\n Input:\n");
p=new list;
scanf("%s",&p->c);
p->next=NULL;
while(cur && p->c > cur->c)
{
prev=cur;
cur=cur->next;
}
if(prev==NULL)
{
p->next=top;
top=p;
}
else
{
p->next=cur;
prev->next=p;
}
}
void push2()
{
printf("\n input marks:\n");
printf("\n how mach?:\n");
scanf("%i",&n);
for(;n;n--)
{
p=new list;
scanf("%s",&p->x);
p->next=NULL;
while(cur && p->x > cur->x)
{
prev=cur;
cur=cur->next;
}
if(prev==NULL)
{
p->next=top;
top=p;
}
else
{
p->next=cur;
prev->next=p;
}
}
}
void show()
{
p=top;
if(p==NULL)
printf("\n list is empty\n");
else
printf("\n LIST:\n");
while(p)
{
printf("%s %s\n",p->c,p->x);
p=p->next;
}
}