FZU 1343 WERTYU --- 水题

  FZU 1343

  题目大意:手放在键盘上时,稍不注意就会往右错一位。这样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;
}
View Code
原文地址:https://www.cnblogs.com/tommychok/p/5309371.html