为什么这个程序用VC6.0编译无法通过?
#include <stdlib.h> /*包含ma l l o c ( ) 的头文件*/
#include <stdio.h>
struct node /*链表节点的结构*/
{
int num;
struct node *next;
};
void main ( )
{
struct node *creat(); /*函数声明*/
void print();
struct node *head; /*定义头指针*/
head=NULL;/*建一个空表*/
head=creat(head);/*创建单链表*/
print(head);/*打印单链表*/
}
/******************************************/
struct node *creat(struct node*head)/*函数返回的是与节点相同类型的指针*/
{
struct node*p1,*p2;
p1=p2=(struct node*)malloc(sizeof(struct node));/*申请新节点*/
scanf("%d",&p1->num);/*输入节点的值*/
p1->next=NULL;/*将新节点的指针置为空*/
while(p1->num>0)/*输入节点的数值大于0*/
{
if(head==NULL)head=p1;/*空表,接入表头*/
else (p2->next)=p1;/*非空表,接到表尾*/
p2=p1;
p1=(struct node*)malloc(sizeof(struct node));/*申请下一个新节点*/
scanf("%d",&p1->num);/*输入节点的值*/
}
return head;/*返回链表的头指针*/
}
/*******************************************/
void print(struct node*head)/*输出以head为头的链表各节点的值*/
{
struct node *temp;
temp=head;/*取得链表的头指针*/
while(temp!=NULL)/*只要是非空表*/
{
printf("%6d",temp->num);/*输出链表节点的值*/
temp=temp->next;/*跟踪链表增长*/
}
}
C:\Documents and Settings\wgm\sdfw3er.cpp(15) : error C2660: 'creat' : function does not take 1 parameters
C:\Documents and Settings\wgm\sdfw3er.cpp(16) : error C2660: 'print' : function does not take 1 parameters
执行 cl.exe 时出错.