打字時一個常見的錯誤就是沒有把手放在正確位置,而是偏右邊一個位置。所以會發生Q被打成W,J被打成K等等的情況。你的任務就是要把打錯的字修正回來。
輸入說明 :
輸入包含許多列,每列可能包含有數字,空白字元,大寫英文字母(Q、A、Z除外),標點符號(`除外)。
輸出說明 :
對每一列中的每個字元,請輸出在鍵盤(如上圖)上其左邊一個位置的字元。但是輸入中的空白字元,輸出時亦請輸出空白字元。
範例輸入 :
O S, GOMR YPFSU/
URD. ,U [JPMR MI,NRT OD 8346333
範例輸出 :
I AM FINE TODAY.
YES, MY PHONE NUMBER IS 7235222
/**********************************************************************************//* Problem: c054 "WERTYU" from ACM 10082 *//* Language: C *//* Result: AC (22ms, 300KB) on ZeroJudge *//* Author: diiuuli520 at 2008-08-17 03:04:58 *//**********************************************************************************/#include <stdio.h>#include <string.h>int main(void){ char ch,key[]={'`','1','2','3','4','5','6','7','8','9','0','-','=', 'Q','W','E','R','T','Y','U','I','O','P','[',']','\\', 'A','S','D','F','G','H','J','K','L',';','\'', 'Z','X','C','V','B','N','M',',','.','/','\0'}; int i,len; len=strlen(key); while(ch!=EOF) { while((ch=getchar())!='\n') { if(ch==' ') printf(" "); else { for(i=0;i<len;i++) if(key[i]==ch) break; printf("%c",key[i-1]); } } printf("\n"); ch=getchar(); if(ch!=EOF) ungetc(ch,stdin); } return 0;}
沒有留言:
張貼留言