2013-04-05 166 views
-4

我不斷收到一個我從未見過的奇怪的語法錯誤,我不確定它有什麼問題。我能否多加一些眼光來幫助我弄清楚問題所在?語法錯誤:在輸入結束時的預期聲明

錯誤讀取:錯誤:期望的聲明或輸入結束時的語句粗體行是它突出顯示的錯誤。

void draw(int deck[SIZE]) 
{ 
    int i; 

    for(i = 0; i < 5; i++) 
    { 
      cards; 
      putchar('\n'); 
      } 

void cards() 
{ 
     char suits[4][9] = 
    { 
     "Hearts", 
     "Diamonds", 
     "Clubs", 
     "Spades"}; 

     for(i=0; i<SIZE; i++) 
    {  
     if(i%13 == 0 || i%13 == 10 || i%13 == 11 || i%13 == 12) 
      printf("%s ", facecheck(i%13)); 
     else printf("%d ", i%13+1); 
     printf("of %s \n", suits[i/13]); 
    }; 

**}** 
+0

怎麼會有之後}它不應該是(相關}到爲)半列 – OopsUser 2013-04-05 22:26:27

+1

多德 - 匹配花括號:) – paulsm4 2013-04-05 22:26:34

+1

也許適當的縮進會有所幫助。 – chris 2013-04-05 22:26:35

回答

1

'cards;'看起來可疑,因爲它是一個函數的名稱

+0

是的,這是一個邏輯錯誤,但我不認爲這是一個編譯器錯誤。 http://liveworkspace.org/code/2dp6eB%241 – chris 2013-04-05 22:27:30

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – eugen 2013-04-05 22:49:06

+0

@chris不,這是一個語法錯誤,不是邏輯錯誤...... C不允許嵌套函數。您的代碼段不相關。 – 2013-04-05 23:10:58

4

您沒有關閉draw函數。你在最後缺少一個}

void draw(int deck[SIZE]) 
{ 
    int i; 
    for(i = 0; i < 5; i++) 
    { 
      cards; 
      putchar('\n'); 
    } 
} //ADD ME PLEASE :(

隨着上的評論指出,一個良好的IDE可能在編譯之前抓住了這個。

我也建議你縮進你的代碼,這樣你可以更好地匹配開啓/關閉大括號。

您的代碼有額外的錯誤,我強烈建議您閱讀教程並查看您的代碼。

+1

另外值得注意的是,在編譯之前,一個好的IDE(甚至是Notepad ++,在某種程度上)將會抓住這一點。 – jedwards 2013-04-05 22:28:51

0
 for(i=0; i<SIZE; i++) 
     {  
      if(i%13 == 0 || i%13 == 10 || i%13 == 11 || i%13 == 12) 
      printf("%s ", facecheck(i%13)); 
      else printf("%d ", i%13+1); 
      printf("of %s \n", suits[i/13]); 
     }; //no need of semi-colon after curly brace 
    } 
} //missing curly brace 
+0

誰給了我這個答案-1,請告訴我我錯了什麼,以便將來我不再重複。謝謝。 – 2013-04-05 22:37:10

+0

我沒有讓你失望,但它完全錯過了真正的問題......這是錯過了捲曲的地方。另外,你對OP問題的編輯會使情況變得更糟。 – 2013-04-05 23:06:57

+0

我並不是說你低估了我,我只是問了我的錯誤。爲什麼錯過了花括號的地方呢?這可能是卡內定義的抽象,不是嗎? – 2013-04-05 23:15:18

相關問題