![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 // shuffle.cpp : Defines the entry point for the console application.
2 //
3 #include "stdafx.h"
4 #include <iostream>
5 using std::cout;
6 using std::cin;
7 using std::endl;
8 using std::ios;
9
10 #include <iomanip>
11 using std::setiosflags;
12 using std::setw;
13
14 #include <cstdlib>
15 #include <ctime>
16
17 struct Card {
18 char *face;
19 char *suit;
20 };
21 void fillDeck(Card*const,char*[],char*[]);
22 void shuffle(Card*const);
23 void deal(Card*const);
24
25 int main()
26 {
27 Card deck[52];
28 char *face[]={"Ace","Deuce","Three","four",
29 "Five","Six","Seven","Eight",
30 "Nine","Ten","Jack","Queen",
31 "King"};
32 char *suit[]={"Hearts","Diamonds",
33 "Clubs","Spades"};
34 srand(time(0));
35 fillDeck(deck,face,suit);
36 shuffle(deck);
37 deal(deck);
38 return 0;
39 }
40 void fillDeck(Card*const wDeck,char *wFace[],
41 char*wSuit[])
42 {
43 for (int i=0;i<52;i++){
44 wDeck[i].face=wFace[i%13];
45 wDeck[i].suit=wSuit[i/13];
46 }
47 }
48
49 void shuffle (Card*const wDeck)
50 {
51 for( int i=0;i<52;i++){
52 int j=rand() % 52;
53 Card temp=wDeck[i];
54 wDeck[i]=wDeck[j];
55 wDeck[j]=temp;
56 }
57 }
58
59 void deal(Card *const wDeck)
60 {
61 for(int i=0;i<52;i++)
62 cout<<setiosflags(ios::right)
63 <<setw(5)<<wDeck[i].face<<"of"
64 <<setiosflags(ios::left)
65 <<setw(8)<<wDeck[i].suit
66 <<((i+1)%2?'\t':'\n');
67 }
Eightof Clubs fourof Hearts
Jackof Spades JackofDiamonds
Aceof Hearts Eightof Hearts
DeuceofDiamonds TenofDiamonds
Sevenof Spades AceofDiamonds
Sevenof Hearts Queenof Hearts
Jackof Hearts Aceof Clubs
Fiveof Clubs Fiveof Hearts
QueenofDiamonds Threeof Hearts
fourof Clubs Nineof Clubs
fourof Spades Tenof Hearts
Threeof Clubs Sixof Hearts
Kingof Clubs Sevenof Clubs
Kingof Spades FiveofDiamonds
SevenofDiamonds Nineof Hearts
Tenof Spades Deuceof Spades
Jackof Clubs EightofDiamonds
Tenof Clubs Nineof Spades
Aceof Spades NineofDiamonds
KingofDiamonds Threeof Spades
Sixof Spades Eightof Spades
Sixof Clubs Queenof Clubs
ThreeofDiamonds Kingof Hearts
fourofDiamonds Fiveof Spades
SixofDiamonds Queenof Spades
Deuceof Hearts Deuceof Clubs