Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 一切都在编译,但我没有得到任何反馈,就好像main没有调用函数一样。有人知道为什么吗?_C - Fatal编程技术网

C 一切都在编译,但我没有得到任何反馈,就好像main没有调用函数一样。有人知道为什么吗?

C 一切都在编译,但我没有得到任何反馈,就好像main没有调用函数一样。有人知道为什么吗?,c,C,我已经分别测试了每个部分,我知道它们都能工作。问题是当我将函数roll_dice粘贴回或vise verse中时。当我将这两个部分编译在一起时,我得到的错误是C2143缺少“;”在第32行“键入”之前,这是“玩游戏”功能。有人能告诉我为什么我得到这个错误时,他们分开工作,但不工作时,他们放在一起。这是一个掷骰子游戏,我是c的初学者 #include <stdio.h> #include <stdlib.h> #include <time.h> #define

我已经分别测试了每个部分,我知道它们都能工作。问题是当我将函数roll_dice粘贴回或vise verse中时。当我将这两个部分编译在一起时,我得到的错误是C2143缺少“;”在第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);
        }
      }

    }

  }
}  
#包括
#包括
#包括
#定义最大模具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);