鱼C论坛

 找回密码
 立即注册
查看: 1120|回复: 4

[已解决]一个洗牌程序,为什么提醒expected primary-expression before

[复制链接]
发表于 2020-12-29 15:39:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 看清之后才看轻 于 2020-12-29 15:57 编辑
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>

  4. #define NUM 54

  5. char player1,player2,player3;
  6. char *random(char *poker, int i);
  7. char *random(char *poker, int i)
  8. {       char *poker[1024] = {"红1", "红2", "红3", "红4", "红5", "红6", "红7", "红8", "红9", "红10", "红J","红Q", "红K","方1", "方2", "方3", "方4", "方5", "方6", "方7", "方8", "方9", "方10", "方J", "方Q", "方K", "黑1", "黑2", "黑3", "黑4","黑5", "黑6", "黑7", "黑8", "黑9", "黑10", "黑J", "黑Q", "黑K", "梅1", "梅2", "梅3", "梅4", "梅5", "梅6", "梅7", "梅8", "梅9", "梅10", "梅J", "梅Q", "梅K", "小王", "大王"};
  9.         time_t t;
  10.         srand((unsigned)time(&t));
  11.         printf("%ld\n",t);
  12.         for (i = 0; i < NUM; i++)
  13.         {
  14.                 poker[54] = poker[rand() % 55];
  15.         }

  16.         return poker;
  17. }
  18. int display();
  19. int display()
  20. {
  21.         printf("方=方角 , 梅=梅花 , 红=红桃 , 黑=黑桃");
  22.         return 0;
  23. }
  24. char *deliver(char *poker, int i);
  25. char *deliver(char *poker, int i)
  26. {
  27.         char *poker[1024] = {"红1", "红2", "红3", "红4", "红5", "红6", "红7", "红8", "红9", "红10", "红J","红Q", "红K","方1", "方2", "方3", "方4", "方5", "方6", "方7", "方8", "方9", "方10", "方J", "方Q", "方K", "黑1", "黑2", "黑3", "黑4","黑5", "黑6", "黑7", "黑8", "黑9", "黑10", "黑J", "黑Q", "黑K", "梅1", "梅2", "梅3", "梅4", "梅5", "梅6", "梅7", "梅8", "梅9", "梅10", "梅J", "梅Q", "梅K", "小王", "大王"};
  28.         printf("%s手上的牌是:", player1);
  29.         for(int i = 0; i < 14; i++)
  30.         {
  31.                 printf("%s",poker[i]);
  32.         }
  33.         printf("%s手上的牌是:", player2);
  34.         for(int i = 14; i < 28; i++)
  35.         {
  36.                 printf("%s",poker[i]);
  37.         }
  38.         printf("%s手上的牌是:", player3);
  39.         for(int i = 28; i < 42; i++)
  40.         {
  41.                 printf("%s",poker[i]);
  42.         }
  43.         return 0;
  44. }
  45. char reset();
  46. char reset()
  47. {
  48.         char *poker[1024] = {"红1", "红2", "红3", "红4", "红5", "红6", "红7", "红8", "红9", "红10", "红J","红Q", "红K","方1", "方2", "方3", "方4", "方5", "方6", "方7", "方8", "方9", "方10", "方J", "方Q", "方K", "黑1", "黑2", "黑3", "黑4","黑5", "黑6", "黑7", "黑8", "黑9", "黑10", "黑J", "黑Q", "黑K", "梅1", "梅2", "梅3", "梅4", "梅5", "梅6", "梅7", "梅8", "梅9", "梅10", "梅J", "梅Q", "梅K", "小王", "大王"};
  49.         char choice;
  50.         printf("重新洗牌(Y/N)?");
  51.         scanf("%s", &choice);
  52.         if(choice == 'Y')
  53.         {
  54.                 random(char *poker[1024], int i);
  55.                 display();
  56.                 deliver(char *poker[1024], int i);
  57.         }
  58.         reset();
  59.         return 0;
  60. }
  61. int main()
  62. {
  63.         char *poker[1024] = {"红1", "红2", "红3", "红4", "红5", "红6", "红7", "红8", "红9", "红10", "红J","红Q", "红K","方1", "方2", "方3", "方4", "方5", "方6", "方7", "方8", "方9", "方10", "方J", "方Q", "方K", "黑1", "黑2", "黑3", "黑4","黑5", "黑6", "黑7", "黑8", "黑9", "黑10", "黑J", "黑Q", "黑K", "梅1", "梅2", "梅3", "梅4", "梅5", "梅6", "梅7", "梅8", "梅9", "梅10", "梅J", "梅Q", "梅K", "小王", "大王"};
  64.         printf("请输入1号玩家的名字:");
  65.         scanf("%s",&player1);
  66.         printf("请输入2号玩家的名字:");
  67.         scanf("%s",&player3);
  68.         printf("请输入3号玩家的名字:");
  69.         scanf("%s",&player3);
  70.         random(char *poker[1024], int i);
  71.         display();
  72.         deliver(char *poker[1024], int i);
  73.         reset();
  74. }
复制代码

提醒这个错误
test1.cpp:73:9: error: expected primary-expression before ‘char’
   73 |  random(char *poker[1024], int i);
      |         ^~~~
test1.cpp:73:28: error: expected primary-expression before ‘int’
   73 |  random(char *poker[1024], int i);
      |                            ^~~
test1.cpp:75:10: error: expected primary-expression before ‘char’
   75 |  deliver(char *poker[1024], int i);
      |          ^~~~
test1.cpp:75:29: error: expected primary-expression before ‘int’
   75 |  deliver(char *poker[1024], int i);
最佳答案
2020-12-29 23:32:39
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>

  4. #define NUM 54

  5. char player1,player2,player3;
  6. char *random(char *poker, int i);
  7. char *random(char *poker, int i)
  8. {       //char *poker= {"红1", "红2", "红3", "红4", "红5", "红6", "红7", "红8", "红9", "红10", "红J","红Q", "红K","方1", "方2", "方3", "方4", "方5", "方6", "方7", "方8", "方9", "方10", "方J", "方Q", "方K", "黑1", "黑2", "黑3", "黑4","黑5", "黑6", "黑7", "黑8", "黑9", "黑10", "黑J", "黑Q", "黑K", "梅1", "梅2", "梅3", "梅4", "梅5", "梅6", "梅7", "梅8", "梅9", "梅10", "梅J", "梅Q", "梅K", "小王", "大王"};
  9.         time_t t;
  10.         srand((unsigned)time(&t));
  11.         printf("%ld\n",t);
  12.         for (i = 0; i < NUM; i++)
  13.         {
  14.                 poker[54] = poker[rand() % 55];
  15.         }

  16.         return poker;
  17. }
  18. int display();
  19. int display()
  20. {
  21.         printf("方=方角 , 梅=梅花 , 红=红桃 , 黑=黑桃");
  22.         return 0;
  23. }
  24. char *deliver(char *poker, int i);
  25. char *deliver(char *poker, int i)
  26. {
  27.         //char *poker[1024] = {"红1", "红2", "红3", "红4", "红5", "红6", "红7", "红8", "红9", "红10", "红J","红Q", "红K","方1", "方2", "方3", "方4", "方5", "方6", "方7", "方8", "方9", "方10", "方J", "方Q", "方K", "黑1", "黑2", "黑3", "黑4","黑5", "黑6", "黑7", "黑8", "黑9", "黑10", "黑J", "黑Q", "黑K", "梅1", "梅2", "梅3", "梅4", "梅5", "梅6", "梅7", "梅8", "梅9", "梅10", "梅J", "梅Q", "梅K", "小王", "大王"};
  28.         printf("%s手上的牌是:", player1);
  29.         for(int i = 0; i < 14; i++)
  30.         {
  31.                 printf("%s",poker[i]);
  32.         }
  33.         printf("%s手上的牌是:", player2);
  34.         for(int i = 14; i < 28; i++)
  35.         {
  36.                 printf("%s",poker[i]);
  37.         }
  38.         printf("%s手上的牌是:", player3);
  39.         for(int i = 28; i < 42; i++)
  40.         {
  41.                 printf("%s",poker[i]);
  42.         }
  43.         return 0;
  44. }
  45. char reset();
  46. char reset()
  47. {
  48.         char *poker[1024] = {"红1", "红2", "红3", "红4", "红5", "红6", "红7", "红8", "红9", "红10", "红J","红Q", "红K","方1", "方2", "方3", "方4", "方5", "方6", "方7", "方8", "方9", "方10", "方J", "方Q", "方K", "黑1", "黑2", "黑3", "黑4","黑5", "黑6", "黑7", "黑8", "黑9", "黑10", "黑J", "黑Q", "黑K", "梅1", "梅2", "梅3", "梅4", "梅5", "梅6", "梅7", "梅8", "梅9", "梅10", "梅J", "梅Q", "梅K", "小王", "大王"};
  49.         char choice;
  50.         printf("重新洗牌(Y/N)?");
  51.         scanf("%s", &choice);
  52.         if(choice == 'Y')
  53.         {
  54.                 random(poker[1024],i);
  55.                 display();
  56.                 deliver(poker[1024],i);
  57.         }
  58.         reset();
  59.         return 0;
  60. }
  61. int main()
  62. {
  63.         char *poker[1024] = {"红1", "红2", "红3", "红4", "红5", "红6", "红7", "红8", "红9", "红10", "红J","红Q", "红K","方1", "方2", "方3", "方4", "方5", "方6", "方7", "方8", "方9", "方10", "方J", "方Q", "方K", "黑1", "黑2", "黑3", "黑4","黑5", "黑6", "黑7", "黑8", "黑9", "黑10", "黑J", "黑Q", "黑K", "梅1", "梅2", "梅3", "梅4", "梅5", "梅6", "梅7", "梅8", "梅9", "梅10", "梅J", "梅Q", "梅K", "小王", "大王"};
  64.         printf("请输入1号玩家的名字:");
  65.         scanf("%s",&player1);
  66.         printf("请输入2号玩家的名字:");
  67.         scanf("%s",&player3);
  68.         printf("请输入3号玩家的名字:");
  69.         scanf("%s",&player3);
  70.         random(poker[1024],i);
  71.         display();
  72.         deliver(poker[1024],i);
  73.         reset();
  74. }
复制代码

还差一个i你在random没有定义,其他函数也没赋值,你自己看需求加进去吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-12-29 15:58:04 | 显示全部楼层

回帖奖励 +10 鱼币

传参的时候不用带类型
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-29 16:37:00 | 显示全部楼层
2269099035 发表于 2020-12-29 15:58
传参的时候不用带类型

改了之后又出问题了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-29 16:54:31 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>

  4. #define NUM 54

  5. char player1,player2,player3;
  6. int i;
  7. char *random(char *, int );
  8. char *random(poker, i)
  9. {   
  10.                 time_t t;
  11.         srand((unsigned)time(&t));
  12.         printf("%ld\n",t);
  13.         for (i = 0; i < NUM; i++)
  14.         {
  15.                 poker[54] = poker[rand() % 55];
  16.         }

  17.         return poker;
  18. }
  19. int display();
  20. int display()
  21. {
  22.         printf("方=方角 , 梅=梅花 , 红=红桃 , 黑=黑桃");
  23.         return 0;
  24. }
  25. char *deliver(char *, int );
  26. char *deliver(poker, i)
  27. {
  28.         for(int i = 0; i < 14; i++)
  29.         {
  30.                 printf("%s",poker[i]);
  31.         }
  32.         printf("%s手上的牌是:", player2);
  33.         for(int i = 14; i < 28; i++)
  34.         {
  35.                 printf("%s",poker[i]);
  36.         }
  37.         printf("%s手上的牌是:", player3);
  38.         for(int i = 28; i < 42; i++)
  39.         {
  40.                 printf("%s",poker[i]);
  41.         }
  42.         return 0;
  43. }
  44. char reset();
  45. char reset()
  46. {
  47.         char choice;
  48.         printf("重新洗牌(Y/N)?");
  49.         scanf("%s", &choice);
  50.         if(choice == 'Y')
  51.         {
  52.                 random(char *poker[1024], int i);
  53.                 display();
  54.                 deliver(char *poker[1024], int i);
  55.         }
  56.         reset();
  57.         return 0;
  58. }
  59. int main()
  60. {
  61.         char *poker[1024] = {"红1", "红2", "红3", "红4", "红5", "红6", "红7", "红8", "红9", "红10", "红J","红Q", "红K","方1", "方2", "方3", "方4", "方5", "方6", "方7", "方8", "方9", "方10", "方J", "方Q", "方K", "黑1", "黑2", "黑3", "黑4","黑5", "黑6", "黑7", "黑8", "黑9", "黑10", "黑J", "黑Q", "黑K", "梅1", "梅2", "梅3", "梅4", "梅5", "梅6", "梅7", "梅8", "梅9", "梅10", "梅J", "梅Q", "梅K", "小王", "大王"};
  62.         printf("请输入1号玩家的名字:");
  63.         scanf("%s",&player1);
  64.         printf("请输入2号玩家的名字:");
  65.         scanf("%s",&player3);
  66.         printf("请输入3号玩家的名字:");
  67.         scanf("%s",&player3);
  68.         random(char *poker[1024], int i);
  69.         display();
  70.         deliver(char *poker[1024], int i);
  71.         reset();
  72. }
复制代码
QQ图片20201229165345.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-29 23:32:39 | 显示全部楼层    本楼为最佳答案   
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>

  4. #define NUM 54

  5. char player1,player2,player3;
  6. char *random(char *poker, int i);
  7. char *random(char *poker, int i)
  8. {       //char *poker= {"红1", "红2", "红3", "红4", "红5", "红6", "红7", "红8", "红9", "红10", "红J","红Q", "红K","方1", "方2", "方3", "方4", "方5", "方6", "方7", "方8", "方9", "方10", "方J", "方Q", "方K", "黑1", "黑2", "黑3", "黑4","黑5", "黑6", "黑7", "黑8", "黑9", "黑10", "黑J", "黑Q", "黑K", "梅1", "梅2", "梅3", "梅4", "梅5", "梅6", "梅7", "梅8", "梅9", "梅10", "梅J", "梅Q", "梅K", "小王", "大王"};
  9.         time_t t;
  10.         srand((unsigned)time(&t));
  11.         printf("%ld\n",t);
  12.         for (i = 0; i < NUM; i++)
  13.         {
  14.                 poker[54] = poker[rand() % 55];
  15.         }

  16.         return poker;
  17. }
  18. int display();
  19. int display()
  20. {
  21.         printf("方=方角 , 梅=梅花 , 红=红桃 , 黑=黑桃");
  22.         return 0;
  23. }
  24. char *deliver(char *poker, int i);
  25. char *deliver(char *poker, int i)
  26. {
  27.         //char *poker[1024] = {"红1", "红2", "红3", "红4", "红5", "红6", "红7", "红8", "红9", "红10", "红J","红Q", "红K","方1", "方2", "方3", "方4", "方5", "方6", "方7", "方8", "方9", "方10", "方J", "方Q", "方K", "黑1", "黑2", "黑3", "黑4","黑5", "黑6", "黑7", "黑8", "黑9", "黑10", "黑J", "黑Q", "黑K", "梅1", "梅2", "梅3", "梅4", "梅5", "梅6", "梅7", "梅8", "梅9", "梅10", "梅J", "梅Q", "梅K", "小王", "大王"};
  28.         printf("%s手上的牌是:", player1);
  29.         for(int i = 0; i < 14; i++)
  30.         {
  31.                 printf("%s",poker[i]);
  32.         }
  33.         printf("%s手上的牌是:", player2);
  34.         for(int i = 14; i < 28; i++)
  35.         {
  36.                 printf("%s",poker[i]);
  37.         }
  38.         printf("%s手上的牌是:", player3);
  39.         for(int i = 28; i < 42; i++)
  40.         {
  41.                 printf("%s",poker[i]);
  42.         }
  43.         return 0;
  44. }
  45. char reset();
  46. char reset()
  47. {
  48.         char *poker[1024] = {"红1", "红2", "红3", "红4", "红5", "红6", "红7", "红8", "红9", "红10", "红J","红Q", "红K","方1", "方2", "方3", "方4", "方5", "方6", "方7", "方8", "方9", "方10", "方J", "方Q", "方K", "黑1", "黑2", "黑3", "黑4","黑5", "黑6", "黑7", "黑8", "黑9", "黑10", "黑J", "黑Q", "黑K", "梅1", "梅2", "梅3", "梅4", "梅5", "梅6", "梅7", "梅8", "梅9", "梅10", "梅J", "梅Q", "梅K", "小王", "大王"};
  49.         char choice;
  50.         printf("重新洗牌(Y/N)?");
  51.         scanf("%s", &choice);
  52.         if(choice == 'Y')
  53.         {
  54.                 random(poker[1024],i);
  55.                 display();
  56.                 deliver(poker[1024],i);
  57.         }
  58.         reset();
  59.         return 0;
  60. }
  61. int main()
  62. {
  63.         char *poker[1024] = {"红1", "红2", "红3", "红4", "红5", "红6", "红7", "红8", "红9", "红10", "红J","红Q", "红K","方1", "方2", "方3", "方4", "方5", "方6", "方7", "方8", "方9", "方10", "方J", "方Q", "方K", "黑1", "黑2", "黑3", "黑4","黑5", "黑6", "黑7", "黑8", "黑9", "黑10", "黑J", "黑Q", "黑K", "梅1", "梅2", "梅3", "梅4", "梅5", "梅6", "梅7", "梅8", "梅9", "梅10", "梅J", "梅Q", "梅K", "小王", "大王"};
  64.         printf("请输入1号玩家的名字:");
  65.         scanf("%s",&player1);
  66.         printf("请输入2号玩家的名字:");
  67.         scanf("%s",&player3);
  68.         printf("请输入3号玩家的名字:");
  69.         scanf("%s",&player3);
  70.         random(poker[1024],i);
  71.         display();
  72.         deliver(poker[1024],i);
  73.         reset();
  74. }
复制代码

还差一个i你在random没有定义,其他函数也没赋值,你自己看需求加进去吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-3 17:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表