C编程调试出现问题
#include<stdio.h>
#include<malloc.h>
struct stu
{int num;
struct stu * next;
};
void main()
{int len=1,i;
struct stu *p1,*p2,*head,* new1,*new1head;
p1=p2=head=(struct stu *) malloc(sizeof(struct stu));
printf("input number(0:list end):");
scanf("%d",&p1->num);
while(p1->num!=0)
{p1=(struct stu *)malloc(sizeof(struct stu));
printf("input number(0:list end):");
scanf("%d",&p1->num);
if(p1->num==0)
p2->next=NULL;
else
{p2->next=p1;
p2=p1;
len++;
}
}
p1=head;
printf("\noriginal list:\n");
do
{printf("%4d",p1->num);
if(p1->next!=NULL)
p1=p1->next;
}while(p1->next!=NULL);
printf("%4d",p1->num);
for(i=0;i<len;i++)
{p2=p1=head;
while(p1->next!=NULL)
{p2=p1;
p1=p1->next;
}
if(i==0)
new1head=new1=p1;
else
new1=new1->next=p1;
p2->next=NULL;
}
printf("\n\nnew list:\n");
p1=new1head;
for(i=0;i<len;i++)
{printf("%4d",p1->num);
p1=p1->next;
}
printf("\n")
}
出错提示:E:\C语言上机调试\1112.cpp(54) : error C2143: syntax error : missing ';' before '}'
Error executing cl.exe.
1112.obj - 1 error(s), 0 warning(s)