欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

寒假练习——WERTYU

程序员文章站 2022-06-09 20:18:05
...

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

我的代码不够简洁。。。

相关标签: 题集