2016-12-13 8 views
1

私のコードをコンパイルしようとしていますが、トン誰かが私を助けることができれば、私はそれを感謝タイプミスを見つけるように見える!私はそれが私がどこかで作られただけの愚かな間違いであると確信しているダウンの下に私のコードを提供してきた。予想される ';' (C:10:1で 'void'エラーが発生する前に ';' '識別子'または '('トークンが 'void'の前のトークンですか?)

#include <stdio.h> 
#include <stdlib.h> 

//setting up my binary converter struct 
struct bin 
{ 
    int data; 
    struct bin *link; 
} 
void append(struct bin **, int);  //setting up append value 
void reverse(struct bin**);   //reverse values to convert to binary 
void display(struct bin *);   //so we can display 

int main(void) 
{ 
    int nu,i;    //global vars 
    struct bin *p; 

    p = NULL;    //setting up p pointer to NULL to make sure it has no sense of being some other value 

    printf("Enter Value: "); 
    scanf("%d", &nu); 

    while (nu != 0) 
    { 
     i = nu % 2; 
     append (&p, i); 
     nu /= 2; 
    } 

    reverse(&p); 
    printf("Value in Binary: "); 
    display(p); 
} 
    //setting up our append function now 
void append(struct bin **q, int nu) 
{ 
    struct bin *temp,*r; 
    temp = *q; 

    if(*q == NULL)        //making sure q pointer is null 
    { 
      temp = (struct bin *)malloc(sizeof(struct bin)); 
      temp -> data = nu; 
      temp -> link = NULL; 
      *q = temp; 
    } 
    else 
    { 
      temp = *q; 
      while (temp -> link != NULL) 
      { 
       temp = temp -> link; 
      } 
      r = (struct bin *) malloc(sizeof(struct bin)); 
      r -> data = nu; 
      r -> link = NULL; 
      temp -> link = r; 
    } 
    //setting up our reverse function to show in binary values 
    void reverse(struct bin **x) 
    { 
     struct bin *q, *r, *s; 
     q = *x; 
     r = NULL; 

     while (q != NULL) 
     { 
      s = r; 
      r = q; 
      q = q -> link; 
      r -> link = s; 
     } 
     *x = r; 
    } 
    //setting up our display function 
    void display(struct bin *q) 
    { 
     while (q != NULL) 
     { 
      printf("%d", q -> data); 
      q = q -> link; 
     } 
    } 
+3

'struct bin {...} 'の後に'; 'がありません – EOF

答えて

1

あなたは(セミコロンを追加する必要があります

また
struct bin 
{ 
    int data; 
    struct bin *link; 
}; 

、あなたのmain()機能するはずreturn SOMET:;)あなたの構造体の宣言の後にヒンジ。最後にreturn 0;を追加します。

もうひとつ気づいたことがあります。ここで:nuiはグローバル変数ではありませんよう

int nu,i;    //global vars 

コメントは、どんな意味がありません。彼らはあなたのmain()関数のスコープで宣言されているので、ローカル変数です。

EDIT: 後者の2つのコメントは明らかにコンパイルエラーの原因にはなりませんでしたが、とにかく言及しておくと良いと思いました。

+0

コンパイラは' main'に暗黙の 'return 0;'を挿入します。しかし、 ';'の良い点があります。 – Bathsheba

+0

言うまでもなく、「リターン」が不足していても問題は発生しませんでしたが、とにかく書いておくとよいと思います。 –

+1

しかし、この教義の断片は良い答えを破棄します。 – Bathsheba

関連する問題