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

+1

Dude - сопрягать фигурные скобки :) – paulsm4

+1

Возможно, собственно отступов бы помочь. – chris

ответ

1

'открытки;' выглядит подозрительно, так как это имя функции

+0

Правда, это логическая ошибка, но я не думаю, что это ошибка компилятора. http://liveworkspace.org/code/2dp6eB%241 – chris

+0

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. – eugen

+0

@chris Нет, это синтаксическая ошибка, а не логическая ошибка ... C не позволяет вложенные функции. Ваш фрагмент не имеет значения. –

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

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 на этот ответ, скажите, пожалуйста, где я ошибаюсь, поэтому я не буду повторять его в будущем. Благодарю. –

+0

Я не спустил вас вниз, но он полностью упустил настоящую проблему ... это неправильное место для недостающих фигур. Кроме того, ваше редактирование вопроса OP делает его намного хуже. –

+0

Я не говорю, что вы меня ниспровергли, я просто спросил о своей ошибке. Почему это не место для отсутствия фигурной скобки? Возможно ли, что карты определены внутри розыгрыша, не так ли? –

Смежные вопросы