鱼C论坛

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

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

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

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

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

x
本帖最后由 看清之后才看轻 于 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[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", "小王", "大王"};
        time_t t;
        srand((unsigned)time(&t));
        printf("%ld\n",t);
        for (i = 0; i < NUM; i++)
        {
                poker[54] = poker[rand() % 55];
        }

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

        return poker;
}
int display();
int display()
{
        printf("方=方角 , 梅=梅花 , 红=红桃 , 黑=黑桃");
        return 0;
}
char *deliver(char *poker, int i);
char *deliver(char *poker, int i)
{
        //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", "小王", "大王"};
        printf("%s手上的牌是:", player1);
        for(int i = 0; i < 14; i++)
        {
                printf("%s",poker[i]);
        }
        printf("%s手上的牌是:", player2);
        for(int i = 14; i < 28; i++)
        {
                printf("%s",poker[i]);
        }
        printf("%s手上的牌是:", player3);
        for(int i = 28; i < 42; i++)
        {
                printf("%s",poker[i]);
        }
        return 0;
}
char reset();
char reset()
{
        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", "小王", "大王"};
        char choice;
        printf("重新洗牌(Y/N)?");
        scanf("%s", &choice);
        if(choice == 'Y')
        {
                random(poker[1024],i);
                display();
                deliver(poker[1024],i);
        }
        reset();
        return 0;
}
int main()
{
        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", "小王", "大王"};
        printf("请输入1号玩家的名字:");
        scanf("%s",&player1);
        printf("请输入2号玩家的名字:");
        scanf("%s",&player3);
        printf("请输入3号玩家的名字:");
        scanf("%s",&player3);
        random(poker[1024],i);
        display();
        deliver(poker[1024],i);
        reset();
}
还差一个i你在random没有定义,其他函数也没赋值,你自己看需求加进去吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

回帖奖励 +10 鱼币

传参的时候不用带类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

改了之后又出问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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[54] = poker[rand() % 55];
        }

        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[i]);
        }
        printf("%s手上的牌是:", player2);
        for(int i = 14; i < 28; i++)
        {
                printf("%s",poker[i]);
        }
        printf("%s手上的牌是:", player3);
        for(int i = 28; i < 42; i++)
        {
                printf("%s",poker[i]);
        }
        return 0;
}
char reset();
char reset()
{
        char choice;
        printf("重新洗牌(Y/N)?");
        scanf("%s", &choice);
        if(choice == 'Y')
        {
                random(char *poker[1024], int i);
                display();
                deliver(char *poker[1024], int i);
        }
        reset();
        return 0;
}
int main()
{
        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", "小王", "大王"};
        printf("请输入1号玩家的名字:");
        scanf("%s",&player1);
        printf("请输入2号玩家的名字:");
        scanf("%s",&player3);
        printf("请输入3号玩家的名字:");
        scanf("%s",&player3);
        random(char *poker[1024], int i);
        display();
        deliver(char *poker[1024], int i);
        reset();
}
QQ图片20201229165345.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[54] = poker[rand() % 55];
        }

        return poker;
}
int display();
int display()
{
        printf("方=方角 , 梅=梅花 , 红=红桃 , 黑=黑桃");
        return 0;
}
char *deliver(char *poker, int i);
char *deliver(char *poker, int i)
{
        //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", "小王", "大王"};
        printf("%s手上的牌是:", player1);
        for(int i = 0; i < 14; i++)
        {
                printf("%s",poker[i]);
        }
        printf("%s手上的牌是:", player2);
        for(int i = 14; i < 28; i++)
        {
                printf("%s",poker[i]);
        }
        printf("%s手上的牌是:", player3);
        for(int i = 28; i < 42; i++)
        {
                printf("%s",poker[i]);
        }
        return 0;
}
char reset();
char reset()
{
        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", "小王", "大王"};
        char choice;
        printf("重新洗牌(Y/N)?");
        scanf("%s", &choice);
        if(choice == 'Y')
        {
                random(poker[1024],i);
                display();
                deliver(poker[1024],i);
        }
        reset();
        return 0;
}
int main()
{
        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", "小王", "大王"};
        printf("请输入1号玩家的名字:");
        scanf("%s",&player1);
        printf("请输入2号玩家的名字:");
        scanf("%s",&player3);
        printf("请输入3号玩家的名字:");
        scanf("%s",&player3);
        random(poker[1024],i);
        display();
        deliver(poker[1024],i);
        reset();
}
还差一个i你在random没有定义,其他函数也没赋值,你自己看需求加进去吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 06:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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