根据order进行n次排序
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
struct poke{
char name;
int order;
int num;
} card[54];
int order[54];
int cmp(const void *a, const void *b){
return (*(struct poke *)a).order - (*(struct poke *)b).order;
}
int main(){
int i,times,j;
freopen("1.in", "r", stdin);
cin >> times;
for (i = 0; i < 13; i++)
{
cin >> order[i];
card[i].name = 'S';
card[i].num = i + 1;
card[i].order = order[i];
}
for (i = 13; i < 26; i++)
{
cin >> order[i];
card[i].name = 'H';
card[i].num = i + 1 - 13;
card[i].order = order[i];
}
for (i = 26; i < 39; i++)
{
cin >> order[i];
card[i].name = 'C';
card[i].num = i + 1 - 26;
card[i].order = order[i];
}
for (i = 39; i < 52; i++)
{
cin >> order[i];
card[i].name = 'D';
card[i].num = i + 1 - 39;
card[i].order = order[i];
}
for (i = 52; i < 54; i++)
{
cin >> order[i];
card[i].name = 'J';
card[i].num = i + 1 - 52;
card[i].order = order[i];
}
while (times--){
qsort(card, 54,sizeof(struct poke),cmp);
for (i = 0; i < 54; i++)
card[i].order = order[i];
}
for (i = 0; i < 54; i++)
if (i == 53)
cout << card[i].name << card[i].num << endl;
else cout << card[i].name << card[i].num << " ";
return 0;
}