一切都编译了,但我没有得到任何形式的反馈,就好像 main 没有调用函数一样,有人知道为什么

  • 本文关键字:函数 调用 main 一样 编译 任何形 c
  • 更新时间 :
  • 英文 :


我已经单独测试了每个部分,我知道它们有效,问题是当我将函数roll_dice粘贴回或虎钳诗句时。当我将两者编译在一起时,我收到错误 C2143 在第 32 行的"type"之前缺少";",这是play_game函数。有人可以告诉我为什么当他们分开工作时我会收到此错误,但当他们放在一起时却不起作用。这是一个掷骰子游戏,我是使用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 : %dn", num1);
    printf("this is your 2nd number : %dn", num2);
    printf("this is your total : %dn", 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 : %dn", 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 : %dn", roll);
          printf("your point is : %dn", point);
        }
      }
    }
  }
}  

定义函数外部functions main()并从main()调用函数

不应在 main() 中定义函数。

您在defining分号时添加了分号。 删除末尾的分号。

declare上述功能main()

在此处和此处读取函数

void roll_dice(int num1, int num2, int roll);
不能在函数

内定义函数。在上述情况下,它编译得很好,因为它是一个声明。

最新更新