cpe練習筆記 UVa10222 Decode the Mad man
題目大意
總之就是解碼
輸入
包含一條測試案例
輸出
將測試輸入對應鍵盤左邊兩格輸出
程式碼
解題概念
1. 將鍵盤順序先存入一陣列
2. 將輸入放進陣列比對
3. 輸出陣列索引值-2的陣列值
總之就是解碼
輸入
包含一條測試案例
輸出
將測試輸入對應鍵盤左邊兩格輸出
程式碼
#include <stdio.h>
#include <stdlib.h>
//printf("%d",(sizeof(set)/sizeof(*set)));
//注意set中的'\',第一個\表示跳脫符號('\'具有特殊意義),第二個表示真的'\'
char set[47]="1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./"; //對應鍵盤
int decode(char c){
int i=0;
for(i=0;i<46;i++){
if(c==set[i]){
if((i-2)>0){
return set[(i-2)];
}
else{
return set[i];
}
}
}
return -1;
}
void lower(char input[]){
int i = 0;
for(i=0;i<1024;i++){
if(input[i]>=65 && input[i]<=90){
input[i]=input[i]+32;
}
}
}
int main(){
char input[1024]="";
int i,tmp;
while(fgets(input,1024,stdin)!=NULL){
lower(input);
for(i=0;i<1024;i++){
tmp=decode(input[i]);
if(tmp!=-1)
input[i]=tmp;
}
printf(input);
}
return 0;
}
解題概念
1. 將鍵盤順序先存入一陣列
2. 將輸入放進陣列比對
3. 輸出陣列索引值-2的陣列值
留言
張貼留言