求教!!C语言的一个程序,关于链表的
下面的这个程序,编译是老是提醒“类型不兼容”(error 出现在划线部分),究竟是怎么回事?怎么会有这种问题??望高手指教!!#include<stdio.h>
#include<stdlib.h>
typedef struct lst
{ int num; struct lst *next; }STL;
STL mycreat();
long s(STL *head) ;
main()
{
long sum=0; STL *head=NULL;
head=mycreat();
sum=s(head);
printf("sum=%ld\n",sum);
}
STL mycreat()
{
STL *head=NULL, *p=NULL, *q=NULL;
int m=0;
head=(STL*)malloc(sizeof(STL));
q=head;
printf("creat,entre data:");
scanf("%d",&m);
while(m!=-1)
{
p=(STL*)malloc(sizeof(STL));
q->next=p;
p->num=m;
q=p;
scanf("%d",&m);
}
q->next=NULL;
return head;
}
long s(STL *head)
{
long sum=0; STL *p=NULL;
p=head->next;
while(p->next!=NULL)
{
sum=sum+p->num;
p=p->next;
}
return sum;
}