南城转暖 发表于 2020-10-10 18:48:09

看一下这哪里错了,帮着改一下


#include<stdio.h>       // stdio.h 头文件是系统自带,用尖括号,不用引号
#include<conio.h>      // getch() 需要这个头文件
void main()
{
          int total = 21;
          int shengyu,yours,computer;
          char another;
         
          printf("****************************************\n");
          printf("*****   起始牙签个数为%d         *****\n",total);
          printf("*****   每次只能拿走1-3个      *****\n");
          printf("*****   谁拿最后一个谁就输了   *****\n");
          printf("\n");
          printf("\n明白了?按任意键开始吧......");
         
          getch();         // 没有添加头函数 conio.h
          shengyu = total;

          while(shengyu != 0)
         {
               do               //只能拿1-3个
               {
                      printf("\n当前牙签数为%d\n",shengyu);
                      printf("请输入你拿走的牙签数(1-3): ");
                      scanf("%d",&yours);

                      if(yours >= 1 && yours <= 3)
                            break;
                      else
                            printf("你每次只能拿1到3个。\n");
               }while(1);
                        
               shengyu = shengyu - yours;
               if(shengyu < 0)
            {
                     printf("\n\n你不按规则来呀! \n");
                     shengyu = shengyu + yours;
                     continue;
               }
               if(shengyu == 0)
               {
                     printf("你输了,再来不? (Y/N)");
                     //清缓冲区
                     fflush(stdin);
                           another = getchar();
                                 
                     if(another =='Y' || another == 'y')
                  {
                           shengyu = total;
                  }
                  else
                  {
                           printf("\n\n再见,以后再来玩呀!\n");
                           break;
                  }
               }
               else
               {
                           computer = 4 - yours;
                           printf("\n电脑拿走了%d个牙签\n",computer);
                           shengyu = shengyu - computer;
               }
         }
}

风过无痕1989 发表于 2020-10-10 18:48:10

南城转暖 发表于 2020-10-10 19:08
无法运行

你用什么编译器?我用 VC++6.0 运行没有告警,运行正常;用 DEV_C++ 有一个告警: implicit declaration of function 'getch' [-Wimplicit-function-declaration] ,但也不影响运行,游戏能正常玩。

只是你这个游戏可能有问题,我玩了一下午了,就没有赢过

风过无痕1989 发表于 2020-10-10 19:03:12

你这个还有什么问题?

南城转暖 发表于 2020-10-10 19:08:22

风过无痕1989 发表于 2020-10-10 19:03
你这个还有什么问题?

无法运行

南城转暖 发表于 2020-10-10 19:12:32

这个C语言里void main()是不存在的,应该改为int main(void)

南城转暖 发表于 2020-10-10 19:14:13

void main()在C语言中其实是不正确的,应该改为int mian(void)

baige 发表于 2020-10-10 19:15:06

本帖最后由 baige 于 2020-10-10 19:22 编辑

#include<stdio.h>       // stdio.h 头文件是系统自带,用尖括号,不用引号
#include<conio.h>      // getch() 需要这个头文件
int main(void)
{
    int total = 21;
    int shengyu, yours, computer;
    char another;

    printf("****************************************\n");
    printf("*****   起始牙签个数为%d         *****\n", total);
    printf("*****   每次只能拿走1-3个      *****\n");
    printf("*****   谁拿最后一个谁就输了   *****\n");
    printf("\n");
    printf("\n明白了?按任意键开始吧......");

    getch();         // 没有添加头函数 conio.h
    shengyu = total;

    while (shengyu != 0)
    {
      do               //只能拿1-3个
      {
            printf("\n当前牙签数为%d\n", shengyu);
            printf("请输入你拿走的牙签数(1-3): ");
            scanf("%d", &yours);

            if (yours >= 1 && yours <= 3)
                break;
            else
                printf("你每次只能拿1到3个。\n");
      } while (1);

      shengyu = shengyu - yours;
      if (shengyu < 0)
      {
            printf("\n\n你不按规则来呀! \n");
            shengyu = shengyu + yours;
            continue;
      }
      if (shengyu == 0)
      {
            printf("你输了,再来不? (Y/N)");
            fflush(stdin);
            another = getchar();

            if (another == 'Y' || another == 'y')
            {
                shengyu = total;
            }
            else
            {
                printf("\n\n再见,以后再来玩呀!\n");
                break;
            }
      }
      else
      {
             computer = 4 - yours;
             printf("\n电脑拿走了%d个牙签\n",computer);
             shengyu = shengyu - computer;
      }
    }
    return 0;
}

南城转暖 发表于 2020-10-10 19:15:10

来呀,送渔币了

KevinHu 发表于 2020-10-10 19:32:18

风过无痕1989 发表于 2020-10-10 19:22
你用什么编译器?我用 VC++6.0 运行没有告警,运行正常;用 DEV_C++ 有一个告警: implicit dec ...

没有赢因为这个游戏电脑必胜{:10_250:}

南城转暖 发表于 2020-10-10 19:35:00

风过无痕1989 发表于 2020-10-10 19:22
你用什么编译器?我用 VC++6.0 运行没有告警,运行正常;用 DEV_C++ 有一个告警: implicit dec ...

哈哈

风过无痕1989 发表于 2020-10-10 19:35:11

KevinHu 发表于 2020-10-10 19:32
没有赢因为这个游戏电脑必胜

所以,这一个下午,我都在研究,想改一改
页: [1]
查看完整版本: 看一下这哪里错了,帮着改一下