#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
}node;
node *create_cll(node *head,int n);
void main()
{
clrscr();
node *head,*p;
int n;
printf("Enter the no.of elements:");
scanf("%d",&n);
head=create_cll(*head,int n);
getch();
}
node *create_cll(node *head,int n)
{
node *rear,*p;
int i;
head=p;
for(i=1;i<n;i++)
{
p=(node*)malloc(sizeof(node));
scanf("%d",&p->data);
p=rear;
rear->next=p;
p=p->next;
}
printf("Circular linked list created..!");
return (head);
}
代码是关于创建循环链表。
但是这里我有一个表达式语法的错误,我无法解决。
错误位于main()
部分中head
等于函数的行中。
所以我需要帮助...
答案 0 :(得分:0)
您需要传递ptr到节点,而不是节点;并删除int
关键字:
head = create_cll(head, n);
在其他新闻中:
int main
,而不是void main
malloc
的回报
scanf
的返回值是确定的惊喜。printf
格式字符串通常在结尾处有换行符"\n"
。<conio.h>
和getch
不是C(即使盖茨先生希望您相信这一点。)请改用getchar()
。答案 1 :(得分:0)
head
已经是指针
*head
可以更改为head
,如下面的方法定义所示。