我已經測試了每個部分單獨和我知道他們工作的問題是,當我粘貼功能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);
}
}
}
}
}
你需要調用主的方法,你只宣佈它。 – JNL
大膽的上面是一個錯字不是問題抱歉的不便之處。我遇到的問題在代碼 –
上面的段落中有解釋。您應該投資一個體面的C教程,對於上述代碼中的函數如何工作存在一些重大誤解,如果沒有答案,難以合理解決Q&A格式是「這是完全錯誤的」,這是令人沮喪的寫作,對你沒有什麼幫助或啓發。通過教程並堅持簡單的事情一段時間可能是最好的。 –