题目大意:手放在键盘上时,稍不注意就会往右错一位。这样Q就会输入成W,输入J就会变成K
给定一串大写敲错后输入,输出正确的输入(输入保证合法,如输入中不会出现Q,A,Z);
解题思路:将字符按键盘顺序存在一个数组中,然后找到每个字符在数组中的位置,输出它的前一个字符,若未找到则输出原字符
/* FZU 1343 WERTYU --- 水题 */ #include <cstdio> char s[] = "`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./"; int main() { char c; while ((c = getchar()) != EOF){ int i; for (i = 1; s[i] && (s[i] != c); ++i) ; if (s[i]){ putchar(s[i - 1]); } else{ putchar(c); } } return 0; }