CDOJ 25 点球大战(penalty) 解题报告
2016-07-12 00:24
483 查看
简单的字符串处理
坑点,有人可能没名字(名字为空)
有人名字可能为blablablano
但是因为输入保证最后五个字符为 good(前面有个空格)
因为如果输入意思是no good的话,no前面必须有一个空格
所以只需要判断倒数第6、7、8个字符是不是' '、'n'、'o'就可以了
当然,如果出现名字为空,结果为good,字符串长度达不到8,要判断一下字符串的长度
以上解决之后稍微关注一下输出格式就可以了
坑点,有人可能没名字(名字为空)
有人名字可能为blablablano
但是因为输入保证最后五个字符为 good(前面有个空格)
因为如果输入意思是no good的话,no前面必须有一个空格
所以只需要判断倒数第6、7、8个字符是不是' '、'n'、'o'就可以了
当然,如果出现名字为空,结果为good,字符串长度达不到8,要判断一下字符串的长度
以上解决之后稍微关注一下输出格式就可以了
#include <cstdio> #include <cstring> using namespace std; int t; char info[105]; int len; char result[2][20]; int score[2]; void initialize() { memset(info, 0, sizeof info); memset(result, 0, sizeof result); memset(score, 0, sizeof score); len = 0; } int main() { while (~scanf("%d", &t) && t) { initialize(); while (getchar() != '\n'); for (int i = 0; i < t; ++i) { gets(info); len = strlen(info); if (len > 8 && info[len - 8] == ' ' && info[len - 7] == 'n' && info[len - 6] == 'o') result[i & 1][i >> 1] = 'X'; else result[i & 1][i >> 1] = 'O', ++score[i & 1]; } for (int i = 1; i <= t + 1 >> 1; ++i) printf("%d ", i); puts("Score"); if (t & 1) result[1][t >> 1] = '-'; for (int i = 0; i < 2; ++i) { for (int j = 0; j << 1 < t; ++j) putchar(result[i][j]), putchar(' '); printf("%d\n", score[i]); } } return 0; }
相关文章推荐
- 剑指offer系列—T18树的子结构
- html与表格(table)相关的属性
- 分类之性能评估指标
- 重写ImageView从相册绘制图片
- BZOJ 2705 [SDOI2012]Longge的问题
- 翻转字符串问题
- Java语法基础
- Linux用户和用户组
- SOFTMAX 的python实现
- javascript的基础学习
- UVA 10152
- JavaScript的时钟小程序
- View的事件分发
- Struts1配置讲解及原理
- 深入理解java.lang.Runtime类
- Vue.js学习 Item16 – 各种Web流行MV*框架对比
- TCP/IP编程之select函数详解
- 有向图的强连通分量
- CDOJ 24 八球胜负(eight) 解题报告
- java字符串