C 一切都在编译,但我没有得到任何反馈,就好像main没有调用函数一样。有人知道为什么吗?
我已经分别测试了每个部分,我知道它们都能工作。问题是当我将函数roll_dice粘贴回或vise verse中时。当我将这两个部分编译在一起时,我得到的错误是C2143缺少“;”在第32行“键入”之前,这是“玩游戏”功能。有人能告诉我为什么我得到这个错误时,他们分开工作,但不工作时,他们放在一起。这是一个掷骰子游戏,我是c的初学者C 一切都在编译,但我没有得到任何反馈,就好像main没有调用函数一样。有人知道为什么吗?,c,C,我已经分别测试了每个部分,我知道它们都能工作。问题是当我将函数roll_dice粘贴回或vise verse中时。当我将这两个部分编译在一起时,我得到的错误是C2143缺少“;”在第32行“键入”之前,这是“玩游戏”功能。有人能告诉我为什么我得到这个错误时,他们分开工作,但不工作时,他们放在一起。这是一个掷骰子游戏,我是c的初学者 #include <stdio.h> #include <stdlib.h> #include <time.h> #define
#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);
}
}
}
}
}
#包括
#包括
#包括
#定义最大模具6
#定义真1
#定义false 0
int num1=0;
int num2=0;
int roll=0;
int点=0;
int=0;
整数损失=0;
int保持滚动=1;
内部主(空)
{
无效掷骰(整数m1,整数m2,整数掷骰);
{
srand(时间(空));
num1=(%d),rand()%MAX_DIE+1);
num2=(%d),rand()%MAX_DIE+1);
滚动=(num1+num2);
printf(“这是您的号码:%d\n”,num1);
printf(“这是您的第二个号码:%d\n”,num2);
printf(“这是您的总数:%d\n”,滚动);
}
无效玩游戏(整数赢,整数亏,整数点,整数掷);
{
如果((滚动==7)| |(滚动==11))
{
printf(“您滚动了%d次,您赢了\n次”,滚动);
wins+=1;
}
如果((横滚==2)| |(横滚==3)| |(横滚==12))
{
printf(“您滚动了%d次,您丢失了\n”,滚动);
损失+=1;
}
如果((横滚==1)| |(横滚==4)| |(横滚==5)| |(横滚==6)
||(横滚==8)| |(横滚==9)| |(横滚==10))
{
printf(“您已指向:%d\n”,滚动);
点=滚动;
printf(“您滚动了%d个指针,\n”,滚动);
同时(保持滚动=1)
{
无效掷骰(整数m1,整数m2,整数掷骰);
如果(滚动=点)
{
printf(“您滚动了%d次,您赢了\n次”,滚动);
wins+=1;
返回keep_rolling=false;
}
否则如果(滚动==7)
{
printf(“您滚动了%d次,您丢失了\n”,滚动);
损失+=1;
返回keep_rolling=false;
}
其他的
{
printf(“您滚动了:%d\n”,滚动);
printf(“您的点是:%d\n”,点);
}
}
}
}
}
不能在函数中定义函数。在上面的例子中,它编译得很好,因为它是一个声明。定义
函数
在main()之外
函数并从main()调用函数
您不应该在main()
中定义函数
您在定义分号时添加了分号。删除结尾处的分号
另外,在main()上声明函数
阅读函数和您需要调用main中的方法,您只声明了它。上面用粗体显示的是输入错误,没有问题。对于给您带来的不便,我们深表歉意。我遇到的问题在上面的代码段中已经解释过了。你应该投资一个像样的C教程,在上面的代码中有一些关于函数如何工作的主要误解,这些误解很难在问答格式中合理地解决,而答案是“完全错了”,这是令人沮丧的,而且对你不是很有帮助或启发。通过一个教程并坚持简单的东西一段时间可能是最好的。@stevenHelsell:请不要像这样彻底地改变你问题中的代码,这会让所有给你答案的人看起来都疯了。你希望像num1=(%d),rand()%MAX\u DIE+1)这样的行是什么代码>要做什么?我不确定这看起来像什么,我正在研究它,我尝试过的每件事都返回错误,说我缺少函数头,你得到了哪些错误?有哪些变化?您是否遇到逻辑错误或编译或运行时错误?你看过链接了吗?你使用调试器了吗?我正在使用记事本+,查看你在函数中发布的链接。好的,我尝试添加:int play_game(int胜,int亏,int点,int滚);在defineflse0下,我将函数从main中取出,并去掉了;在它们后面,我将一些应该是局部的变量添加到函数中。错误是重新定义了形式peramater“roll”,参数太少,无法调用我的函数
void roll_dice(int num1, int num2, int roll);