寒假练习——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;
}

我的代码不够简洁。。。

发布了26 篇原创文章 · 获赞 1 · 访问量 427

猜你喜欢

转载自blog.csdn.net/qq_45309822/article/details/103993889