作者sb0917 (QQ)
看板NTUBIME101HW
标题[C++] 考前不负责猜题-发牌程式
时间Tue Nov 18 12:03:42 2008
#include <iostream>
#include <iomanip>
#include <ctime>
#define swap(x,y) {int t=x;x=y;y=t;}//定义交换的函式
using namespace std;
void shuffle(int [], int); //改成用教授上课说的方式
int main()
{
srand(time(NULL));
const int MAX = 52; //设定最大值(阵列个数)
int poker[MAX];
char sign;
for(int i=0;i<MAX;i++)
poker[i] = i+1;//把牌排好
shuffle(poker,MAX);
cout << "player1\tplayer2\tplayer3\tplayer4\n"
<< "-------\t-------\t-------\t-------\n";
for(int i=0;i<MAX;i++)//输出牌
{
sign = poker[i]%4 + 3;//请看ASCii的3~6号
cout << setw(2) << sign << setw(3) << poker[i]%13+1 << "\t";
if((i+1)%4==0)
cout << endl;
}
system("pause");
return 0;
}
void shuffle(int poker_in[], const int MAX)//洗牌函式
{
int change1,change2,temp;
for(int i=0;i<10000;i++)
{
change1 = rand()%MAX;
change2 = rand()%MAX;
//如果用了最前面定义的那个swap()就可省下下面这三行
temp = poker_in[change2];
poker_in[change2] = poker_in[change1];
poker_in[change1] = temp; //乱数交换牌换一万次总该乾净了吧
//用法就是以下这样
//swap(poker_in[change1],poker_in[change2]);
//这样就可以交换两数了
//其实用template就可以写出甚麽形态都可以交换的函式
}
}
看看就好...
因为这程式用的东西都在考试范围里ˊˋ
想说阵列和函式的应用(8-3)老师坚持会考...
这只程式难度比乐透低 应该不难了解@@
祝大家考试顺利!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.7.59
1F:推 ck940560:计中卷王! 快推 11/18 14:33
2F:→ ck940560:原来有现成的花色符号...看到标题我还以为要用中文叙述.. 11/18 14:34
※ 编辑: sb0917 来自: 125.232.115.72 (11/18 21:21)
3F:推 mosdavid:卷王C++直接100 11/19 07:33
4F:→ sb0917:不要逼我去乱入农艺板喔... 11/19 15:29
5F:推 xx7983:XDDDD 11/19 16:55
6F:推 honoYang:科科 11/19 17:47
7F:→ ck940560:void shuffle(int []);中括号前面为什麽不用放东西啊? 11/19 18:52
8F:→ ck940560:int poker_in[]还有这个阵列大小是未定义吗? 11/19 18:52
9F:→ sb0917:助教出现了~! 11/19 19:57
※ 编辑: sb0917 来自: 140.112.7.59 (11/19 19:59)