2013-04-05 353 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

相关问题