想问一下问题出在哪里,望指正,正在学习数组,另外也想问一下,中文英字符串的长度似乎有所区别?
1条回答 默认 最新
- a5156520 2022-11-24 19:27关注
设置card的值那里的设置值错了,取0-51之间的值就可以了,即rand()%52 ,以与数组的下标相符合;
然后发牌那里也是要从0开始到51结束,也是与数组下标相合;
另外中文字符长度大部分编码系统是2个字节,英文字符是1个字节,要看具体是哪种编码;
然后如果是模拟发牌,还需要考虑A到K的13种牌都需要有4张,每种牌的花色依次是四样,所以仅定义13张牌和4个花色,还需要加入一些控制条件来控制每种牌有四种,然后花色也依次是四样,所以可能实现有点复杂,这里仅简单用自定义出的52张牌的二维字符数组来实现这一点。
代码如下:
参考链接:
C--中文汉字占用字节长度(字符集和字符编码)_worthsen的博客-CSDN博客_c语言一个汉字占几个字节#include <stdio.h> #include <time.h> //为time()函数提供函数原型 #include <stdlib.h> //为srand(), rand()函数 提供函数原型 int main(void){ // char sty[][5] = {"红心","方块-","梅花-","黑桃-"}; char sty[][10]={"红心-A","红心-2","红心-3","红心-4","红心-5","红心-6","红心-7","红心-8","红心-9","红心-10","红心-J","红心-Q","红心-K", "方块-A","方块-2","方块-3","方块-4","方块-5","方块-6","方块-7","方块-8","方块-9","方块-10","方块-J","方块-Q","方块-K", "梅花-A","梅花-2","梅花-3","梅花-4","梅花-5","梅花-6","梅花-7","梅花-8","梅花-9","梅花-10","梅花-J","梅花-Q","梅花-K", "黑桃-A","黑桃-2","黑桃-3","黑桃-4","黑桃-5","黑桃-6","黑桃-7","黑桃-8","黑桃-9","黑桃-10","黑桃-J","黑桃-Q","黑桃-K"}; //char num[][3]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; int card[52]={0}; int i; srand((unsigned)time(NULL)); for(i=0;i<52;i++){ unsigned int a = rand()%52; if(card[a]==0){ card[a]=i; }else{ i--; } } printf("Player1:\n"); i=0; while(i<26){ int b,c,d; b=card[i]; printf("%-7s, ",sty[b]); i++; if(i%6==0){ printf("\n"); } } printf("\nPlayer2:\n"); i=26; while(i<52){ int b=card[i]; printf("%-7s, ",sty[b]); i++; if((i-26)%6==0){ printf("\n"); } } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥30 VMware 云桌面水印如何添加
- ¥15 用ns3仿真出5G核心网网元
- ¥15 matlab答疑 关于海上风电的爬坡事件检测
- ¥88 python部署量化回测异常问题
- ¥30 酬劳2w元求合作写文章
- ¥15 在现有系统基础上增加功能
- ¥15 远程桌面文档内容复制粘贴,格式会变化
- ¥15 这种微信登录授权 谁可以做啊
- ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
- ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”