错误比较多,见注释。
#include "stdio.h"
#include "stdlib.h"
//#define N 5; //define N 5;实际意义相当于用"5;"代替程序中N,应去掉分号
#define N 5
typedef struct node{
int data;
struct node *next;
}
NODE;
void fun(NODE *h)
{
NODE *p,*q,*r;
p=h;
//if(p==NULL) rerurn; //return 拼写错误
if(p==NULL) return;
q=p->next;
p->next=NULL;
while(q)
{
r=q->next;q->next=p;p=q;q=r;
}
h->next=p;
}
NODE *creatlist(int a[])
{
NODE *h,*p,*q;
int i;
h=(NODE*)malloc(sizeof(NODE));
h->next=NULL;
for(i=0;i
q=(NODE*)malloc(sizeof(NODE));
q->data=a[i];
q->next=NULL;
if(h->next==NULL) h->next=p=q;
else{p->next=q;p=q;}
}
return h;
}
void outlist(NODE *h)
{
NODE *p;
p=h->next;
if(p==NULL) printf("the list is null!\n");
else printf("\n head");
do
{
printf("->%d",p->data);
p=p->next;
}
while(p!=NULL);
printf("->End\n");
}
main()
{
NODE *head;
int a[N]={2,4,6,8,10};
head=creatlist(a);
// printf("\n The original list is:\n); //少引号
printf("\n The original list is:\n");
outlist (head);
fun(head);
printf("the data after inverting :\n");
outlist(head);
}
#define N 5;
应该写成: #define N 5
if(p==NULL) rerurn;
应该写成: if(p==NULL) return;