题目描述 扑克牌中一共有54张牌,分别是A,2,3,4,5,6,7,8,9,10,J,Q,K每种4张,加上两张王(Joker)。我们规定,从3到K大小是递增的,A比K大,2比A大,王是最大的。现在你摸到n张牌,请将这n张牌按从小到大排列。
输入格式 第一行一个整数n 接下来n个字符串,每个字符串表示一张牌
输出格式 n行,每行一个字符串
#include<cstdio>
#include<iostream>
#include<cstdio>
using namespace std;
struct P
{
string ar;
int t;
} a[55];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].ar;
if(a[i].ar=="A") a[i].t='k'+1;
else if(a[i].ar=="2") a[i].t='k'+2;
else if(a[i].ar=="Joker") a[i].t='k'+3;
else a[i].t=a[i].ar[0];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n-i;j++)
{
if(a[j].t>a[j+1].t) swap(a[j],a[j+1]);
}
}
for(int i=1;i<=n;i++)
{
cout<<a[i].ar<<endl;
}
return 0;
}