Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Ошибка при компиляции


Автор: chelovek 8.1.2006, 05:01
Ошибка при компиляции...
Изучаю с++ по Дейтлу, но в книге даются немного глючноватые примеры прог (кто-то сканировал книгу плохо). Так что приходится самому додумывать...
Использую Borland C++ Builder 6.0.

Сама прога:
Код



#include <iostream.h>
#include <time.h>
#include <stdlib.h>

int rollDice(void);

main() {
        enum Status {CONTINUE, WON, LOST};
        int sum, myPoint;
        Status GameStatus;

        srand(time(NULL)); sum = rollDice();

        switch(sum) {
          case 7:
            GameStatus = WON;
            break;
          case 12:
            GameStatus = LOST;
            break; default: {
          GameStatus = CONTINUE;
          myPoint = sum;
          cout << "I?ee: " << myPoint << endl;
          break; }   }

        while (GameStatus == CONTINUE) {
          sum = rollDice();

          if (sum == myPoint)
            GameStatus = WON;
          else
            if (sum == 7)
              GameStatus = LOST; }

        if (GameStatus == WON)
                cout << "Ea?ie auea?ae" << endl;
        else
                cout << "Ea?ie i?iea?ae" << endl;

        return 0;

        int rollDice(void);
          int diel, diel2, workSum;

          diel = 1 + rand() % 6;
          diel2 = 1 + rand() % 6;
          workSum = diel + diel2;
          cout << "A?inie ea?iea " << diel << " + " << diel2
          << " = " << workSum << endl;

          return workSum;
          return 0; }


Выдает следующие ошибки:

[C++ Warning] Unit1.cpp(45): W8066 Unreachable code
[C++ Warning] Unit1.cpp(52): W8066 Unreachable code
[Linker Error] Unresolved external 'rollDice()' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ


Помогите, в чем проблема?

P.S. Если у кого имеется нормальна отсканированная книга Дейтла в pdf или еще в каком-нибудь формате (или ссылка), поделитесь, плиииз.

Автор: BreakPointMAN 8.1.2006, 12:39
Нет закрывающей фигурной скобки в конце функции main (строка 43),
нет открывающей фигурной скобки в начале функции int rollDice, вместо нее стоит точка с запятой, в результате получается не определение функции, а ее объявление... (строка 44).
Зачем в ней два return'а - тоже остается загадкой, поскольку второй никогда не будет выполнен (строка 54).
В саму прогу не вникал, может в логике какие ошибки есть...

Автор: tigger 8.1.2006, 13:02
Лови доработку:

Код

#pragma hdrstop

#pragma argsused
#include <iostream.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>


int rollDice(void)
{
int diel, diel2, workSum;

diel = 1 + rand() % 6;
diel2 = 1 + rand() % 6;
workSum = diel + diel2;
cout << "A?inie ea?iea " << diel << " + " << diel2
<< " = " << workSum << endl;

return workSum;
}

int main(int argc, char* argv[])
{
enum Status {CONTINUE, WON, LOST};
int sum, myPoint;
Status GameStatus;

srand(time(NULL)); sum = rollDice();

   switch(sum)
        {
          case 7:
                GameStatus = WON;
                break;
          case 12:
                GameStatus = LOST;
                break;
          default:
                {
                GameStatus = CONTINUE;
                myPoint = sum;
                cout << "I?ee: " << myPoint << endl;
                break;
                }
          }

while (GameStatus == CONTINUE)
        {
        sum = rollDice();

        if (sum == myPoint) GameStatus = WON;
        else if (sum == 7)  GameStatus = LOST;
        }

 if (GameStatus == WON) cout << "Ea?ie auea?ae" << endl;
        else cout << "Ea?ie i?iea?ae" << endl;

//притормозим прогу
int a = getch();
//__притормозим прогу

        return 0;
}


Цитата

P.S. Если у кого имеется нормальна отсканированная книга Дейтла в pdf или еще в каком-нибудь формате (или ссылка), поделитесь, плиииз.

а вот этого добра у меня не имеется... smile

Автор: BreakPointMAN 8.1.2006, 13:28
tigger, совсем необязательно писать
Код

int a = getch();

можно просто
Код

getch();

smile

Автор: Guest 8.1.2006, 14:19
Если книга до сих пор требуется- давай мыло- солью

Автор: chelovek 9.1.2006, 00:55
Всем спасибо.
А насчет книги, то буду очень благодарен.
konrad.metkalf{at}gmail.com

Автор: chelovek 10.1.2006, 00:38
Книги не будет?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)