题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=1038
代码如下:
001.
#include
002.
#include
003.
#include
004.
using
namespace
std;
005.
006.
struct
node
007.
{
008.
int
fh;
009.
int
rank;
010.
char
a;
//数字
011.
char
b;
//符号
012.
}N[5][20];
013.
bool
cmp(node n1,node n2)
014.
{
015.
if
(n1.fh==n2.fh)
016.
return
n1.rank
017.
return
n1.fh
018.
}
019.
int
main()
020.
{
021.
char
s1[108],s2[58],s3[3];
022.
int
flag=1;
023.
while
(
scanf
(
"%s"
,s3)!=EOF)
024.
{
025.
memset
(N,0,
sizeof
(N));
026.
if
(flag!=1)
027.
printf
(
"\n"
);
028.
scanf
(
"%s%s"
,s1,s2);
029.
strcat
(s1,s2);
//连接字符串
030.
int
len=
strlen
(s1);
031.
int
p=0,q=0,sum=0;
032.
for
(
int
i=0;i//首先将所有的牌分成4份
033.
{
034.
if
(sum%4==0&&sum!=0)
035.
{
036.
p=0;
037.
q++;
038.
}
039.
N[p][q].a=s1[i];
040.
if
(s1[i]>=
'2'
&&s1[i]<=
'9'
)
041.
N[p][q].rank=s1[i]-
'0'
;
042.
else
if
(s1[i]==
'A'
)
043.
N[p][q].rank=14;
044.
else
if
(s1[i]==
'T'
)
045.
N[p][q].rank=10;
046.
else
if
(s1[i]==
'J'
)
047.
N[p][q].rank=11;
048.
else
if
(s1[i]==
'Q'
)
049.
N[p][q].rank=12;
050.
else
if
(s1[i]==
'K'
)
051.
N[p][q].rank=13;
052.
N[p][q].b=s1[i+1];
053.
if
(s1[i+1]==
'C'
)
054.
N[p][q].fh=1;
055.
else
if
(s1[i+1]==
'D'
)
056.
N[p][q].fh=2;
057.
else
if
(s1[i+1]==
'S'
)
058.
N[p][q].fh=3;
059.
else
if
(s1[i+1]==
'H'
)
060.
N[p][q].fh=4;
061.
p++;
062.
sum++;
063.
}
064.
for
(
int
i=0;i<4;i++)
065.
sort(N[i],N[i]+13,cmp);
066.
if
(s3[0]==
'E'
)
067.
{
068.
printf
(
"East player:\n"
);
//东
069.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
070.
for
(
int
i=0;i<13;i++)
071.
printf
(
"|%c %c|"
,N[0][i].a,N[0][i].a);
072.
printf
(
"\n"
);
073.
for
(
int
i=0;i<13;i++)
074.
printf
(
"| %c |"
,N[0][i].b);
075.
printf
(
"\n"
);
076.
for
(
int
i=0;i<13;i++)
077.
printf
(
"|%c %c|"
,N[0][i].a,N[0][i].a);
078.
printf
(
"\n"
);
079.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
080.
printf
(
"South player:\n"
);
//南
081.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
082.
for
(
int
i=0;i<13;i++)
083.
printf
(
"|%c %c|"
,N[1][i].a,N[1][i].a);
084.
printf
(
"\n"
);
085.
for
(
int
i=0;i<13;i++)
086.
printf
(
"| %c |"
,N[1][i].b);
087.
printf
(
"\n"
);
088.
for
(
int
i=0;i<13;i++)
089.
printf
(
"|%c %c|"
,N[1][i].a,N[1][i].a);
090.
printf
(
"\n"
);
091.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
092.
printf
(
"West player:\n"
);
//西
093.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
094.
for
(
int
i=0;i<13;i++)
095.
printf
(
"|%c %c|"
,N[2][i].a,N[2][i].a);
096.
printf
(
"\n"
);
097.
for
(
int
i=0;i<13;i++)
098.
printf
(
"| %c |"
,N[2][i].b);
099.
printf
(
"\n"
);
100.
for
(
int
i=0;i<13;i++)
101.
printf
(
"|%c %c|"
,N[2][i].a,N[2][i].a);
102.
printf
(
"\n"
);
103.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
104.
105.
printf
(
"North player:\n"
);
//北
106.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
107.
for
(
int
i=0;i<13;i++)
108.
printf
(
"|%c %c|"
,N[3][i].a,N[3][i].a);
109.
printf
(
"\n"
);
110.
for
(
int
i=0;i<13;i++)
111.
printf
(
"| %c |"
,N[3][i].b);
112.
printf
(
"\n"
);
113.
for
(
int
i=0;i<13;i++)
114.
printf
(
"|%c %c|"
,N[3][i].a,N[3][i].a);
115.
printf
(
"\n"
);
116.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
117.
}
118.
if
(s3[0]==
'S'
)
119.
{
120.
printf
(
"East player:\n"
);
//东
121.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
122.
for
(
int
i=0;i<13;i++)
123.
printf
(
"|%c %c|"
,N[3][i].a,N[3][i].a);
124.
printf
(
"\n"
);
125.
for
(
int
i=0;i<13;i++)
126.
printf
(
"| %c |"
,N[3][i].b);
127.
printf
(
"\n"
);
128.
for
(
int
i=0;i<13;i++)
129.
printf
(
"|%c %c|"
,N[3][i].a,N[3][i].a);
130.
printf
(
"\n"
);
131.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
132.
133.
printf
(
"South player:\n"
);
//南
134.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
135.
for
(
int
i=0;i<13;i++)
136.
printf
(
"|%c %c|"
,N[0][i].a,N[0][i].a);
137.
printf
(
"\n"
);
138.
for
(
int
i=0;i<13;i++)
139.
printf
(
"| %c |"
,N[0][i].b);
140.
printf
(
"\n"
);
141.
for
(
int
i=0;i<13;i++)
142.
printf
(
"|%c %c|"
,N[0][i].a,N[0][i].a);
143.
printf
(
"\n"
);
144.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
145.
146.
printf
(
"West player:\n"
);
//西
147.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
148.
for
(
int
i=0;i<13;i++)
149.
printf
(
"|%c %c|"
,N[1][i].a,N[1][i].a);
150.
printf
(
"\n"
);
151.
for
(
int
i=0;i<13;i++)
152.
printf
(
"| %c |"
,N[1][i].b);
153.
printf
(
"\n"
);
154.
for
(
int
i=0;i<13;i++)
155.
printf
(
"|%c %c|"
,N[1][i].a,N[1][i].a);
156.
printf
(
"\n"
);
157.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
158.
159.
160.
printf
(
"North player:\n"
);
//北
161.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
162.
for
(
int
i=0;i<13;i++)
163.
printf
(
"|%c %c|"
,N[2][i].a,N[2][i].a);
164.
printf
(
"\n"
);
165.
for
(
int
i=0;i<13;i++)
166.
printf
(
"| %c |"
,N[2][i].b);
167.
printf
(
"\n"
);
168.
for
(
int
i=0;i<13;i++)
169.
printf
(
"|%c %c|"
,N[2][i].a,N[2][i].a);
170.
printf
(
"\n"
);
171.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
172.
}
173.
if
(s3[0]==
'W'
)
174.
{
175.
printf
(
"East player:\n"
);
//东
176.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
177.
for
(
int
i=0;i<13;i++)
178.
printf
(
"|%c %c|"
,N[2][i].a,N[2][i].a);
179.
printf
(
"\n"
);
180.
for
(
int
i=0;i<13;i++)
181.
printf
(
"| %c |"
,N[2][i].b);
182.
printf
(
"\n"
);
183.
for
(
int
i=0;i<13;i++)
184.
printf
(
"|%c %c|"
,N[2][i].a,N[2][i].a);
185.
printf
(
"\n"
);
186.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
187.
188.
189.
printf
(
"South player:\n"
);
//南
190.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
191.
for
(
int
i=0;i<13;i++)
192.
printf
(
"|%c %c|"
,N[3][i].a,N[3][i].a);
193.
printf
(
"\n"
);
194.
for
(
int
i=0;i<13;i++)
195.
printf
(
"| %c |"
,N[3][i].b);
196.
printf
(
"\n"
);
197.
for
(
int
i=0;i<13;i++)
198.
printf
(
"|%c %c|"
,N[3][i].a,N[3][i].a);
199.
printf
(
"\n"
);
200.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
201.
202.
203.
printf
(
"West player:\n"
);
//西
204.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
205.
for
(
int
i=0;i<13;i++)
206.
printf
(
"|%c %c|"
,N[0][i].a,N[0][i].a);
207.
printf
(
"\n"
);
208.
for
(
int
i=0;i<13;i++)
209.
printf
(
"| %c |"
,N[0][i].b);
210.
printf
(
"\n"
);
211.
for
(
int
i=0;i<13;i++)
212.
printf
(
"|%c %c|"
,N[0][i].a,N[0][i].a);
213.
printf
(
"\n"
);
214.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
215.
216.
217.
printf
(
"North player:\n"
);
//北
218.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
219.
for
(
int
i=0;i<13;i++)
220.
printf
(
"|%c %c|"
,N[1][i].a,N[1][i].a);
221.
printf
(
"\n"
);
222.
for
(
int
i=0;i<13;i++)
223.
printf
(
"| %c |"
,N[1][i].b);
224.
printf
(
"\n"
);
225.
for
(
int
i=0;i<13;i++)
226.
printf
(
"|%c %c|"
,N[1][i].a,N[1][i].a);
227.
printf
(
"\n"
);
228.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
229.
}
230.
if
(s3[0]==
'N'
)
231.
{
232.
233.
printf
(
"East player:\n"
);
//东
234.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
235.
for
(
int
i=0;i<13;i++)
236.
printf
(
"|%c %c|"
,N[1][i].a,N[1][i].a);
237.
printf
(
"\n"
);
238.
for
(
int
i=0;i<13;i++)
239.
printf
(
"| %c |"
,N[1][i].b);
240.
printf
(
"\n"
);
241.
for
(
int
i=0;i<13;i++)
242.
printf
(
"|%c %c|"
,N[1][i].a,N[1][i].a);
243.
printf
(
"\n"
);
244.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
245.
246.
247.
248.
printf
(
"South player:\n"
);
//南
249.
printf
(
"+---++---++---++---++---++---++---++---++---++---++---++---++---+\n"
);
250.
for