_纵拥千千晚星 2023-01-31 20:11 采纳率: 100%
浏览 29
已结题

C++扑克程序怎么写

C++扑克
一个扑克,他玩的游戏使用1幅扑克牌(不使用大鬼和小鬼),共52张牌。他今天运气不好,一直在输,他怀疑扑克牌被动了手脚:如果他能发现2张牌花色和大小都一样,那么就能确定牌有问题。

输入:第一行是正整数n代表已经打出几张牌,以下n行依次为这些牌的花色和大小。
输出:如果发现了问题,就输出I am angry,否则输出Nice hand。
输入样例:
5
diamond 8
spade A
diamond 10
heart Q
diamond 8

输出样例:
I am angry
这个程序应该怎么写?

  • 写回答

2条回答 默认 最新

  • CodeBytes 2023-02-01 09:22
    关注

    参考如下,还望采纳:
    具体实现:

    1、读入牌的数量 n,和每张牌的花色和大小;
    2、定义一个map存储已经打出的牌,键为 "花色+大小",值为牌数;
    3、对于每一张牌,如果在map中找到了对应的键,那么对应的牌数加1;如果牌数>=2,则直接输出 "I am angry",退出程序;
    4、如果扫完所有的牌都没有出现问题,则输出 "Nice hand"。

    代码如下:

    #include <iostream>
    #include <unordered_map>
    using namespace std;
    
    const int N = 55;
    int n;
    unordered_map<string, int> h;
    
    int main() {
        cin >> n;
        while (n--) {
            string a, b;
            cin >> a >> b;
            string t = a + b;
            h[t]++;
            if (h[t] == 2) {
                cout << "I am angry" << endl;
                return 0;
            }
        }
        cout << "Nice hand" << endl;
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月6日
  • 已采纳回答 2月1日
  • 创建了问题 1月31日

悬赏问题

  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error