《C语言及程序设计》程序阅读——洗牌
来源:互联网 发布:部落冲突箭塔升级数据 编辑:程序博客网 时间:2024/05/08 11:16
返回:贺老师课程教学链接
//随机数发牌游戏的C语言实现:#include<stdio.h>#include<stdlib.h>#include<time.h>void initial(int* p)//初始化一付牌{ int i; for(i=0; i<52; i++) p[i]=(i/13+3)*100+i%13+1;}void xipai(int *p)//洗牌{ int i,x,y; int t; srand((int)time(0)); for(i=0; i<200; i++) { x=rand()%52; //52中一个数 y=rand()%52; //52中一个数 if(x!=y) { t=p[x]; p[x]=p[y]; p[y]=t; } }}void fapai(int* p,int* p1,int* p2,int* p3,int* p4)//发牌{ int i; for(i=0; i<13; i++) { p1[i]=p[4*i]; p2[i]=p[4*i+1]; p3[i]=p[4*i+2]; p4[i]=p[4*i+3]; }}void paixu(int* p)//排序{ int i,j; int t; for(i=0; i<13; i++) for(j=0; j<13-i; j++) { if(p[j]>p[j+1]) { t=p[j]; p[j]=p[j+1]; p[j+1]=t; } }}void xianshi(int *p){ int i; int f,d; for(i=0; i<13; i++) { f=p[i]/100;//301~313,401~413,501~513,601~613 d=p[i]%100;//1~13 switch(f) { case 3: printf("黑桃"); break; case 4: printf("红桃"); break; case 5: printf("梅花"); break; case 6: printf("方块"); break; } if(d<10&&d>1) { printf("%c ", (d+'0')); } else if(d==1) printf("A "); else if(d==11) printf("J "); else if(d==12) printf("Q "); else if(d==13) printf("K "); else if(d==10) printf("10 "); } printf("\n");}int main(){ int pai[52],player1[13],player2[13],player3[13],player4[13]; initial(pai); xipai(pai); fapai(pai,player1,player2,player3,player4); paixu(player1); paixu(player2); paixu(player3); paixu(player4); xianshi(player1); xianshi(player2); xianshi(player3); xianshi(player4); return 0;}
附:原错误粘贴来的C++代码
//随机数发牌游戏的C++实现:#include<iostream>#include<stdlib.h>#include<time.h>#include<cstdio>using namespace std;void initial(int* p)//初始化一付牌{ int i; for(i=0; i<52; i++) p[i]=(i/13+3)*100+i%13+1;}void xipai(int *p)//洗牌{ int i,x,y; int t; srand((int)time(0)); for(i=0; i<200; i++) { x=rand()%52; //52中一个数 y=rand()%52; //52中一个数 if(x!=y) { t=p[x]; p[x]=p[y]; p[y]=t; } }}void fapai(int* p,int* p1,int* p2,int* p3,int* p4)//发牌{ int i; for(i=0; i<13; i++) { p1[i]=p[4*i]; p2[i]=p[4*i+1]; p3[i]=p[4*i+2]; p4[i]=p[4*i+3]; }}void paixu(int* p)//排序{ int i,j; int t; for(i=0; i<13; i++) for(j=0; j<13-i; j++) { if(p[j]>p[j+1]) { t=p[j]; p[j]=p[j+1]; p[j+1]=t; } }}void xianshi(int *p){ int i; int f,d; for(i=0; i<13; i++) { f=p[i]/100; //301~313,401~413,501~513,601~613 d=p[i]%100;//1~13 switch(f) { case 3: cout<<"黑桃"; break; case 4: cout<<"红桃"; break; case 5: cout<<"梅花"; break; case 6: cout<<"方块"; break; } if(d<10&&d>1) { cout<<(char)(d+'0')<<" "; } else if(d==1) cout<<"A "; else if(d==11) cout<<"J "; else if(d==12) cout<<"Q "; else if(d==13) cout<<"K "; else if(d==10) cout<<"10 "; } cout<<endl;}int main(){ int pai[52],player1[13],player2[13],player3[13],player4[13]; initial(pai); xipai(pai); fapai(pai,player1,player2,player3,player4); paixu(player1); paixu(player2); paixu(player3); paixu(player4); xianshi(player1); xianshi(player2); xianshi(player3); xianshi(player4); return 0;}
1 0
- 《C语言及程序设计》程序阅读——洗牌
- 《C语言及程序设计》程序阅读——输出小星星
- 《C语言及程序设计》程序阅读——函数起步
- 《C语言及程序设计》程序阅读——函数应用
- 《C语言及程序设计》程序阅读——二维数组
- 《C语言及程序设计》程序阅读——字符串数组
- 《C语言及程序设计》程序阅读——递归函数
- 《C语言及程序设计》程序阅读——宏定义
- 《C语言及程序设计》程序阅读——条件编译
- 《C语言及程序设计》程序阅读——文件操作
- 《C语言及程序设计》程序阅读——程序的多文件组织
- 《C语言及程序设计》程序阅读——用switch语句实现多分支结构
- 《C语言及程序设计》程序阅读——if语句的嵌套
- 《C语言及程序设计》程序阅读——用循环累加
- 《C语言及程序设计》程序阅读——三种循环语句
- 《C语言及程序设计》程序阅读——用break和continue改变流程
- 《C语言及程序设计》程序阅读——参数传递方式:传值与传地址
- 《C语言及程序设计》程序阅读——静态局部变量
- [LeetCode]Isomorphic Strings
- Shell基础-Bash变量-用户自定义变量
- C++静态库与动态库
- Rails中Array转为ActiveRecord::Relation
- ubuntu 14.04 kylin 编译 android 5.0源码
- 《C语言及程序设计》程序阅读——洗牌
- oracle 数据库的概念
- rails自定义校验
- 琼海建“东部中心城市”,三亚失“最美国事活动”
- Mysql修改root账号密码
- 杭电ACM1162——Eddy's picture~~最小生成树
- hdu1282 回文数猜想 字符串操作
- 第六章 堆排序 C++
- 套接字编程原理