看清之后才看轻 发表于 2020-12-29 15:39:51

一个洗牌程序,为什么提醒expected primary-expression before

本帖最后由 看清之后才看轻 于 2020-12-29 15:57 编辑

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define NUM 54

char player1,player2,player3;
char *random(char *poker, int i);
char *random(char *poker, int i)
{       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", "小王", "大王"};
        time_t t;
      srand((unsigned)time(&t));
        printf("%ld\n",t);
      for (i = 0; i < NUM; i++)
      {
                poker = poker;
      }

      return poker;
}
int display();
int display()
{
        printf("方=方角 , 梅=梅花 , 红=红桃 , 黑=黑桃");
        return 0;
}
char *deliver(char *poker, int i);
char *deliver(char *poker, int i)
{
        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", "小王", "大王"};
        printf("%s手上的牌是:", player1);
        for(int i = 0; i < 14; i++)
        {
                printf("%s",poker);
        }
        printf("%s手上的牌是:", player2);
        for(int i = 14; i < 28; i++)
        {
                printf("%s",poker);
        }
        printf("%s手上的牌是:", player3);
        for(int i = 28; i < 42; i++)
        {
                printf("%s",poker);
        }
        return 0;
}
char reset();
char reset()
{
        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", "小王", "大王"};
        char choice;
        printf("重新洗牌(Y/N)?");
        scanf("%s", &choice);
        if(choice == 'Y')
        {
                random(char *poker, int i);
                display();
                deliver(char *poker, int i);
        }
        reset();
        return 0;
}
int main()
{
        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", "小王", "大王"};
        printf("请输入1号玩家的名字:");
        scanf("%s",&player1);
        printf("请输入2号玩家的名字:");
        scanf("%s",&player3);
        printf("请输入3号玩家的名字:");
        scanf("%s",&player3);
        random(char *poker, int i);
        display();
        deliver(char *poker, int i);
        reset();
}
提醒这个错误
test1.cpp:73:9: error: expected primary-expression before ‘char’
   73 |random(char *poker, int i);
      |         ^~~~
test1.cpp:73:28: error: expected primary-expression before ‘int’
   73 |random(char *poker, int i);
      |                            ^~~
test1.cpp:75:10: error: expected primary-expression before ‘char’
   75 |deliver(char *poker, int i);
      |          ^~~~
test1.cpp:75:29: error: expected primary-expression before ‘int’
   75 |deliver(char *poker, int i);

2269099035 发表于 2020-12-29 15:58:04

传参的时候不用带类型

看清之后才看轻 发表于 2020-12-29 16:37:00

2269099035 发表于 2020-12-29 15:58
传参的时候不用带类型

改了之后又出问题了

看清之后才看轻 发表于 2020-12-29 16:54:31

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define NUM 54

char player1,player2,player3;
int i;
char *random(char *, int );
char *random(poker, i)
{   
                time_t t;
      srand((unsigned)time(&t));
      printf("%ld\n",t);
      for (i = 0; i < NUM; i++)
      {
                poker = poker;
      }

      return poker;
}
int display();
int display()
{
      printf("方=方角 , 梅=梅花 , 红=红桃 , 黑=黑桃");
      return 0;
}
char *deliver(char *, int );
char *deliver(poker, i)
{
      for(int i = 0; i < 14; i++)
      {
                printf("%s",poker);
      }
      printf("%s手上的牌是:", player2);
      for(int i = 14; i < 28; i++)
      {
                printf("%s",poker);
      }
      printf("%s手上的牌是:", player3);
      for(int i = 28; i < 42; i++)
      {
                printf("%s",poker);
      }
      return 0;
}
char reset();
char reset()
{
      char choice;
      printf("重新洗牌(Y/N)?");
      scanf("%s", &choice);
      if(choice == 'Y')
      {
                random(char *poker, int i);
                display();
                deliver(char *poker, int i);
      }
      reset();
      return 0;
}
int main()
{
      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", "小王", "大王"};
      printf("请输入1号玩家的名字:");
      scanf("%s",&player1);
      printf("请输入2号玩家的名字:");
      scanf("%s",&player3);
      printf("请输入3号玩家的名字:");
      scanf("%s",&player3);
      random(char *poker, int i);
      display();
      deliver(char *poker, int i);
      reset();
}

2269099035 发表于 2020-12-29 23:32:39

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define NUM 54

char player1,player2,player3;
char *random(char *poker, int i);
char *random(char *poker, int i)
{       //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", "小王", "大王"};
      time_t t;
      srand((unsigned)time(&t));
      printf("%ld\n",t);
      for (i = 0; i < NUM; i++)
      {
                poker = poker;
      }

      return poker;
}
int display();
int display()
{
      printf("方=方角 , 梅=梅花 , 红=红桃 , 黑=黑桃");
      return 0;
}
char *deliver(char *poker, int i);
char *deliver(char *poker, int i)
{
      //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", "小王", "大王"};
      printf("%s手上的牌是:", player1);
      for(int i = 0; i < 14; i++)
      {
                printf("%s",poker);
      }
      printf("%s手上的牌是:", player2);
      for(int i = 14; i < 28; i++)
      {
                printf("%s",poker);
      }
      printf("%s手上的牌是:", player3);
      for(int i = 28; i < 42; i++)
      {
                printf("%s",poker);
      }
      return 0;
}
char reset();
char reset()
{
      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", "小王", "大王"};
      char choice;
      printf("重新洗牌(Y/N)?");
      scanf("%s", &choice);
      if(choice == 'Y')
      {
                random(poker,i);
                display();
                deliver(poker,i);
      }
      reset();
      return 0;
}
int main()
{
      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", "小王", "大王"};
      printf("请输入1号玩家的名字:");
      scanf("%s",&player1);
      printf("请输入2号玩家的名字:");
      scanf("%s",&player3);
      printf("请输入3号玩家的名字:");
      scanf("%s",&player3);
      random(poker,i);
      display();
      deliver(poker,i);
      reset();
}
还差一个i你在random没有定义,其他函数也没赋值,你自己看需求加进去吧
页: [1]
查看完整版本: 一个洗牌程序,为什么提醒expected primary-expression before