[C++]APCS试题 棒球游戏

题目出自 APCS 网站 > 历次试题 > 2016-10-29_实作题 > 第四题 棒球游戏

解答仅供参考

解答:

[C++]APCS试题 棒球游戏

[C++]APCS试题 棒球游戏

输入:

[C++]APCS试题 棒球游戏

输出:

[C++]APCS试题 棒球游戏

说明:

以往写C++处理字串都是使用C传统的字元阵列,

这次想来练习一下 C++ 好用的 string 物件,

读取字串因为还是使用 scanf 函数,所以另外宣告一个字元阵列来暂存读进来的字串,

因为打击结果都是长度为2的字串,所以这里我宣告了一个长度为3的阵列,阵列的最后一位用来储存字串的结尾符号 '\0'。

接下来就是将暂存的字串写入string 阵列内,因为string 有operator = 所以可以直接将C Style 的字元阵列赋值给string,这个赋值会将暂存阵列内的字元复制到string 的记忆体空间中。

接下来我写了一个 getNum 函数,用来将打击结果的字串转换为数字。

1 -> 1垒打

2 -> 2垒打

3 -> 3垒打

4 -> 全垒打

0 -> 出局

再来讲一下安打的地方,会先从三垒> 二垒> 一垒> 本垒,依次检查每位跑垒者是否回到本垒,如果回到本垒就将分数加一,然后清除垒包上跑垒前的位置,如果没有回到本垒,就将跑垒员移动到跑垒后的垒包上,并清除跑垒前的位置。

接着就是简单的计分逻辑,就不再多做说明。

相关文章