- 问题描述
-
潮汐海灵是LOL里面的一个英雄。etond很喜欢它,etond叫它小鱼。它有四个技能。分别是淘气打击[ Q ]、海石三叉戟[ W ]、
古灵精怪[ E ]、巨鲨强袭[ R ]。分别用键盘上的QWER四个键来施放。技能如果成功施放的话,就以如下规则输出相应字符。
1.Q技能成功施放,输出"Rush~~~"
2.W技能成功施放,输出"Buff~~~"
3.E技能是二段技能,若E技能成功施放,小鱼会跳到空中,输出"Jump~~~",为了简单处理这个题目,如果在3次按键内
没有再次按下E小鱼会在空中,之后才会落回地面,输出"Fall~~~",若在3次按键内出现了E按键。那么小鱼立刻落回地面。
4.R技能成功施放,输出"Big Shark~~~"
5.当小鱼跳到空中的时候,键盘上的QR技能都是不能施放的,但是W技能可以。
Etond有次很无聊,记录下了键盘上的按键。现在他向你求助,让你帮忙写个程序根据他的键盘按键来输出技能的有效施放。
为了简单程序,我们认为技能可以无限制的施放。
- 输入
-
首先输入一个数字T。表示有T组数据。
接下来T行,每行输入一个长度小于100的字符串,由qwerQWER组成。
- 输出
-
对于每一行输出相应字符。在每组数据后面加一个换行。
一般的字符串题目
#include<cstdio> #include<cstring> using namespace std; void str_treat(char *str,int len) { int i=0; while(i<len) { if(str[i]=='q' || str[i]=='Q') { printf("Rush~~~\n"); i++; } else if(str[i]=='w' || str[i]=='W') { printf("Buff~~~\n"); i++; } else if(str[i]=='r' || str[i]=='R') { printf("Big Shark~~~\n"); i++; } else { printf("Jump~~~\n"); if(i+1<len &&(str[i+1]=='e' || str[i+1]=='E')) //三次按键有一次为e,直接下落 { i+=2; printf("Fall~~~\n"); } else if(i+2<len && (str[i+2]=='e' || str[i+2]=='E')) { if(str[i+1]=='w' || str[i+1]=='W') printf("Buff~~~\n"); i+=3; printf("Fall~~~\n"); } else if(i+3<len&& (str[i+3]=='e' || str[i+3]=='E')) { if(str[i+1]=='w' || str[i+1]=='W') printf("Buff~~~\n"); if(str[i+2]=='w' || str[i+2]=='W') printf("Buff~~~\n"); i+=4; printf("Fall~~~\n" ); } else //一次都没有,落在空中 { if(i+1<len && (str[i+1]=='w' || str[i+1]=='W')) printf("Buff~~~\n"); if(i+2<len && (str[i+2]=='w' || str[i+2]=='W')) printf("Buff~~~\n"); if(i+3<len && (str[i+3]=='w' || str[i+3]=='W')) printf("Buff~~~\n"); if(i+3<len) printf("Fall~~~\n"); i+=4; } } } } int main() { int T; while(~scanf("%d",&T)) { char str[105]; while(T--) { scanf("%s",str); int len=strlen(str); str_treat(str,len); printf("\n"); } } return 0; }
NOJ [1231] Fizz
最新推荐文章于 2024-01-25 15:45:34 发布