2016-04-09 8 views
-4
#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

どのmain()もmain()をすばやく見ることができません。次へ... –

+0

[サンプルコード](http://ideone.com/DSGbpd) – BLUEPIXY

答えて

0

ノードではなくptr-to-nodeを渡す必要があります。他のニュースでは

head = create_cll(head, n); 

::とintキーワードを削除

  • それは
  • リターンをテストしていないCにmallocからの復帰をキャストしないでくださいvoid main
  • 、Cでint mainではありませんscanfの値は驚きのレシピです。
  • printfフォーマット文字列の末尾に改行があります("\n")。
  • <conio.h>getchはCではありません(ゲイツ氏はあなたがそれを信じることを望んでいますが)。代わりにgetchar()を使用してください。
+0

アドバイスありがとうございます.. –

0

headすでにメソッドの定義は次のようにあなたのコード内の

*headheadに変更することができポインタです。