2013-09-27 14 views
0

我已經測試了每個部分單獨和我知道他們工作的問題是,當我粘貼功能roll_dice回來或vise verse.When我編譯兩個一起我得到錯誤C2143失蹤';'在play_game函數的第32行「輸入」之前。有人可以告訴我,爲什麼在他們分開工作時得到這個錯誤,但當他們放在一起時不工作。這是一個擲骰子游戲,我是使用c的初學者。一切都編譯好了,但是我沒有得到任何反饋,就好像主函數沒有調用函數一樣,有人知道爲什麼嗎?

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

#define MAX_DIE 6 
#define true 1 
#define false 0 

int num1 = 0; 
int num2 = 0; 
int roll = 0; 
int point = 0; 
int wins = 0; 
int losses = 0; 
int keep_rolling = 1; 

int main(void) 
{ 

    void roll_dice(int num1, int num2, int roll); 
    { 
    srand(time(NULL)); 
    num1 = ("%d", rand() % MAX_DIE + 1); 
    num2 = ("%d", rand() % MAX_DIE + 1); 
    roll = (num1 + num2); 
    printf("this is your number : %d\n", num1); 
    printf("this is your 2nd number : %d\n", num2); 
    printf("this is your total : %d\n", roll); 
    } 

    void play_game(int wins, int losses, int point, int roll); 
    { 

    if ((roll == 7) || (roll == 11)) 
    { 
     printf("you rolled %d you won \n", roll); 
     wins += 1; 
    } 
    else if ((roll == 2) || (roll == 3) || (roll == 12)) 
    { 
     printf("you rolled %d you lost \n", roll); 
     losses += 1; 
    } 
    else if ((roll == 1) || (roll == 4) || (roll == 5) || (roll == 6) 
     || (roll == 8) || (roll == 9) || (roll == 10)) 
    { 
     printf("you have pointed : %d\n", roll); 
     point = roll; 
     printf("you rolled %d you pointed \n", roll); 

     while (keep_rolling = 1) 
     { 
     void roll_dice(int num1, int num2, int roll); 

     if (roll == point) 
     { 
      printf("you rolled %d you won \n", roll); 
      wins += 1; 
      return keep_rolling = false; 
     } 
     else if (roll == 7) 
     { 
      printf("you rolled %d you lost \n", roll); 
      losses += 1; 
      return keep_rolling = false; 
     } 
     else 
     { 
      printf("you rolled : %d\n", roll); 
      printf("your point is : %d\n", point); 
     } 
     } 

    } 

    } 
} 
+0

你需要調用主的方法,你只宣佈它。 – JNL

+0

大膽的上面是一個錯字不是問題抱歉的不便之處。我遇到的問題在代碼 –

+2

上面的段落中有解釋。您應該投資一個體面的C教程,對於上述代碼中的函數如何工作存在一些重大誤解,如果沒有答案,難以合理解決Q&A格式是「這是完全錯誤的」,這是令人沮喪的寫作,對你沒有什麼幫助或啓發。通過教程並堅持簡單的事情一段時間可能是最好的。 –

回答

0

main()

定義functionsmain()功能和通話功能,您不應該定義裏面main()功能。

你已經添加了分號,而defining他們。最後刪除分號。

而且declare功能上面main()

讀功能HereHereHere

+0

即時通訊不知道什麼樣子看起來像我研究它,我已經tryed的一切回來說錯誤說缺少功能標題 –

+0

你收到哪些錯誤?有什麼變化呢?你會得到邏輯錯誤還是編譯或運行時錯誤?你有沒有通過鏈接?你使用調試器嗎? – Gangadhar

+0

即時通訊使用notepad ++並瀏覽您在功能上發佈的鏈接。 –

0
void roll_dice(int num1, int num2, int roll); 

您不能在函數中定義的功能。它在上述情況下編譯得很好,因爲它是一個聲明。

相關問題