#include
#include
struct Grade_Info
{
int score;
struct Grade_Info *next;
};
typedef struct Grade_Info NODE;
NODE creat ( )
{
NODE *head, *tail, *pnew;
int score;
head = (NODE)malloc (sizeof(NODE));
head->next = NULL; /
tail = head;
printf ("input the score of students:\n");
while (1)
{
scanf ("%d", &score);
if (score < 0)
break;
pnew = (NODE *)malloc (sizeof(NODE));
pnew->score = score;
pnew->next = NULL;
tail->next = pnew;
tail = pnew;
}
return head;
}
NODE *samevalue(NODE *a,NODE *b,NODE *c)
{
NODE *pa,*pb,*pc;
pc=c;
pa=a->next;pb=b->next;
while(pa&&pb)
{
if(pa->score-pb->score
pa=pa->next;
else if(pa->score-pb->score>0)
pb=pb->next;
else
{
c->next=pa;
c=c->next;
pa=pa->next;
pb=pb->next;
}
}
c->next=NULL;
return pc;
}
int main ()
{
NODE *a,*b,*c;
a=creat();
b=creat();
c=samevalue(a,b,c);
c=c->next;
while(c)
{printf("%d ",c->score);
c=c->next;
}
}
main里一个一个打印score就可以,用循环就崩溃,我都快崩溃了