寒假練習——WERTYU

題目大意:將輸入的字母按鍵盤上的排列替換爲它前面的一個。

AC代碼1:

#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char s1[15]={'\`','1','2','3','4','5','6','7','8','9','0','-','='};
char s2[14]={'Q','W','E','R','T','Y','U','I','O','P','[',']','\\'};
char s3[12]={'A','S','D','F','G','H','J','K','L',';','\''};
char s4[12]={'Z','X','C','V','B','N','M',',','.','/'};
int main()
{
    char ch;
    int len1=strlen(s1);
    int len2=strlen(s2);
    int len3=strlen(s3);
    int len4=strlen(s4);
    while(~scanf("%c",&ch))
    {
        for(int i=0;i<len1;i++)
            if(ch==s1[i])
                ch=s1[i-1];
        for(int i=0;i<len2;i++)
            if(ch==s2[i])
                ch=s2[i-1];
        for(int i=0;i<len3;i++)
            if(ch==s3[i])
                ch=s3[i-1];
        for(int i=0;i<len4;i++)
            if(ch==s4[i])
                ch=s4[i-1];
        printf("%c",ch);
    }
    return 0;
}

AC代碼2(來自學長):

#include <stdio.h>
char str[]="`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;\'ZXCVBNM,./";
int main()
{
    char ch;
    while((ch=getchar())!=EOF)
    {
        int i=0;
        while(str[i] && str[i]!=ch) i++;
        if(str[i])
            printf("%c",str[i-1]);
        else 
            printf("%c",ch);
    }
    return 0;
}

我的代碼不夠簡潔。。。

發佈了35 篇原創文章 · 獲贊 4 · 訪問量 3288
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章