咋错了
  • 板块灌水区
  • 楼主zcx20242024
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/7/30 14:09
  • 上次更新2024/7/30 15:19:54
查看原帖
咋错了
1377954
zcx20242024楼主2024/7/30 14:09

题目描述 扑克牌中一共有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;
}
2024/7/30 14:09
加载中...