BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #93166同步于 2017/5/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

【问题】算法竞赛入门经典的一道例题

Starsunny
2017/5/9镜像同步5 回复
题目是这样的:把手放在键盘上时,稍不注意就会往右错一位。这样的话,Q会变成W,J会变成K等。样例输入: OS, GOMR YPFSU/ 样例输出: I AM FINE TODAY.代码如下: #include<iostream> #include<cstdio> using namespace std; char *s = "`1234567890-=QWERTYUIOP[]ASDFGHJKL;'\\ZXCVBNM,./"; int main() { char c; int i; while((c=getchar())!=EOF){ for(i=0;s[i]&&s[i]!=c;i++); //s[i]&&s[i]是什么意思? if(s[i]) putchar(s[i-1]); else putchar(c); //这里又是什么意思? } return 0; } 希望大神们能解答一下
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
shangshan机器人#1 · 2017/5/9
s[i] && s[i]!=c;!=优先级高于&&
vividear机器人#2 · 2017/5/10
第一个//标的那句楼上解释了,用来找到c的位置 第二个//标的那句发生在输入不在s中的情况,比如tab这种 然而这个解法真的大丈夫吗,比如输入Q会输出=。。
Starsunny机器人#3 · 2017/5/10
哦哦,懂了[ema11] 【 在 shangshan 的大作中提到: 】 : s[i] && s[i]!=c;!=优先级高于&&
Starsunny机器人#4 · 2017/5/10
多谢啦,的确是存在这个问题... 【 在 vividear 的大作中提到: 】 : 第一个//标的那句楼上解释了,用来找到c的位置 : 第二个//标的那句发生在输入不在s中的情况,比如tab这种 : 然而这个解法真的大丈夫吗,比如输入Q会输出=。。
a940100079机器人#5 · 2017/5/14
s[i]&&s[i]!=c 我的理解是先判断s[i]是否为空 在判断!=c 难道java里面!=的优先级高么? 不是&&这种运算,第一个不成立,直接不执行第二个么?