题目:
某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X)。捕鼠夹可重复利用,不计成本,奶酪每块3元。
聪明的老鼠呢?它们每天可能会派出一只老鼠到墙角,看看墙角有啥:

若什么也没有(X),老鼠们就不高兴了(Unhappy),会有长达一天(也就是第二天)的不高兴期。在不高兴期间,不派出老鼠。不高兴期结束之后,派出老鼠。
若有捕鼠夹(T),这只老鼠被引诱吃掉奶酪并被打死(Dead),老鼠们会有长达两天(也就是第二和第三天)的伤心期。在伤心期间,不派出老鼠。伤心期结束之后,派出老鼠。在这种情况下,抓到1只老鼠可获得奖励10元,但同时也耗费了一块奶酪。注意,如果某一天放置了捕鼠夹但老鼠没有出现,则没有耗费奶酪。
若有奶酪(C),老鼠吃了奶酪会很开心(Happy!),会有长达两天(第二和第三天)的兴奋期。在兴奋期间,即使叠加了不高兴或者伤心,也必定派出老鼠。在这种情况下,没抓到老鼠,而且耗费了一块奶酪。注意,如果某一天放置了奶酪但老鼠没有出现,则奶酪可以下次再用,没有耗费。
现在给你连续几天的操作序列,且已知第一天肯定会派出老鼠,请判断老鼠每天的状态,并计算盈利。

输入格式:
输入在一行中给出连续的由C或T或X组成的不超过70个字符的字符串,以$结束。字符串中每个字符表示这一天的操作( 即X:什么都不放;T:放捕鼠夹;C:放奶酪)。题目保证至少有一天的操作输入。

输出格式:
要求在第一行输出连续的字符串,与输入相对应,给出老鼠的状态:

! 表示派出老鼠吃到奶酪
D 表示派出老鼠被打死
U 表示派出老鼠无所获
表示没有派出老鼠
第二行则应输出一个整数表示盈利。(如果有亏损,则是负数)

输入样例1:
TXXXXC$

输出样例1:
D--U-!
4

输入样例2:
CTTCCX$

输出样例2:
!DD--U
11

实验代码:

#include <stdio.h>
int main()
{char c;int rat=0;int unhappy, sad, happy;unhappy = sad = happy = 0;while( (c=getchar())!='$' ){if(happy>0){happy--;if(sad>0) sad--;if(unhappy>0) unhappy--;}else{if(sad>0&&unhappy==0){sad--;putchar('-');continue;}else if(unhappy>0&&sad==0){unhappy--;putchar('-');continue;}else if(sad>0&&unhappy>0){sad--;unhappy--;putchar('-');continue;}}if(c=='T'){putchar('D');rat += 7;sad = 2;}else if(c=='C'){putchar('!');rat -= 3;happy = 2;}else{putchar('U');unhappy = 1;}}printf("\n%d\n",rat);return 0;
}

设计思路:

本题调试过程碰到问题及解决办法:

遇到的问题:弄不清楚到底会有几种情况
解决的办法:和同学讨论,得出会有sad>0&&unhappy==0,unhappy>0&&sad==0,sad>0&&unhappy>0三种情况

运行结果截图:

转载于:https://www.cnblogs.com/LILI6/p/10406253.html

PTA编程总结3—抓老鼠啊~亏了还是赚了?相关推荐

  1. PTA(02)典例详解(7-48 龟兔赛跑7-49 币值转换7-51 念数字7-53 抓老鼠啊~亏了还是赚了?7-56 谁先倒7-58 输出GPLT7-60 福到了)

    目录 7-48 龟兔赛跑 7-49 币值转换 7-51 念数字 7-53 抓老鼠啊~亏了还是赚了? 7-56 谁先倒 7-58 输出GPLT 7-60 福到了 7-48 龟兔赛跑 乌龟与兔子进行赛跑, ...

  2. 寒假作业3 抓老鼠啊~亏了还是赚了?

    7-1 抓老鼠啊~亏了还是赚了? (20 分) 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块 ...

  3. 7-1 抓老鼠啊~亏了还是赚了? (20 分)

    7-1 抓老鼠啊~亏了还是赚了? (20 分) 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块 ...

  4. 寒假作业三:抓老鼠,亏了还是赚了

    7-1 抓老鼠啊~亏了还是赚了? (20 分) 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块 ...

  5. 7-172 抓老鼠啊~亏了还是赚了? (20 分)

    7-172 抓老鼠啊~亏了还是赚了? (20 分) 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置 ...

  6. 7-37 抓老鼠啊~亏了还是赚了? (20 分)

    7-37 抓老鼠啊~亏了还是赚了? (20 分) 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一 ...

  7. 寒假作业3:抓老鼠啊~亏了还是赚了?

    #寒假作业3:抓老鼠啊~亏了还是赚了? 7-1 抓老鼠啊~亏了还是赚了? 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的 ...

  8. (C语言)抓老鼠啊~亏了还是赚了?--pta

    某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X).捕鼠夹可重复利 ...

  9. PTA题目 抓老鼠啊~亏了还是赚了?

    某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X).捕鼠夹可重复利 ...

  10. 抓老鼠啊~亏了还是赚了?

    某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X).捕鼠夹可重复利 ...

最新文章

  1. Codeforces Round #506 (Div. 3)
  2. java TreeMap 源代码分析 平衡二叉树
  3. python使用matplotlib可视化线图(line plot)、为可视化图像添加双Y轴、分别可视化不同范围的数据(double y axis in matplotlib)
  4. [转] 机器学习那些事儿
  5. 性能测试篇 :Jmeter监控服务器性能
  6. ML算法岗从业几年还不具备提出新模型的技术能力?看这个就够了!
  7. 带有Prometheus的弹簧靴和Micrometer第5部分:旋转Prometheus
  8. 分布式开放 消息系统 (RocketMQ) 的原理与实践
  9. 当你遇到modifying layer that is being finalized的时候怎么办?
  10. 今年iPhone 11有3款,索然无味!
  11. 高级点的php书,深入理解php:高级技巧、面向对象与核心技术(原书第3版) 中文pdf扫描版[76MB]...
  12. Python字符串isidentifier()
  13. 21矩阵——Schur分解定理、酉相似下的标准型、Hermite正定矩阵、正规矩阵
  14. 计算机桌面变小了是怎么回事啊,电脑桌面整体变小了要怎么调回来的
  15. 苹果6s最大屏幕尺寸_iPhone SE /iPhone 6s /5s对比图赏与屏幕报告
  16. 从零开始学《离散数学》-电子科技大学
  17. html引入微软雅黑,求让所有浏览器支持微软雅黑的方法_html/css_WEB-ITnose
  18. 不同范数下的余弦定理_平行四边形的认识视频
  19. “消失”的Android技术博主们现在如何!Android开发者前路在哪?
  20. 树莓派访问 群晖 里的共享文件夹

热门文章

  1. 9月20日等级考试试题答案实时追踪中
  2. 看了这么多代码,谈一谈代码风格!
  3. media encoder中文2022已上线
  4. M1 MacBook Air值不值得买?使用体验分享
  5. 如何在Mac系统中修改设备名称
  6. 利用RazorSQL如何创建SSH密钥
  7. win10的一些命令,记一记
  8. 小程序内嵌H5页面判断微信及小程序环境
  9. 字符串的HashCode可能相同
  10. Ciena 在MEF16发布开放分布式NFV方案