• pta 习题集 5-17九宫格输入法


    假设有九宫格输入法键盘布局如下:

     [ 1,.?! ] [ 2ABC ] [ 3DEF  ]
     [ 4GHI  ] [ 5JKL ] [ 6MNO  ]
     [ 7PQRS ] [ 8TUV ] [ 9WXYZ ]
               [ 0空  ]
    

    注意:中括号[ ]仅为了表示键盘的分隔,不是输入字符。每个中括号中,位于首位的数字字符即是键盘的按键,按一下即可输入该数字字符。多次按同一个键,则输入的字符依次循环轮流,例如按两次3,则输入D;按5次7,则输入S;按6次2,则输入A。按键0的输入组合是0空格字符,即按两次0输入空格。

    你需要对于给定的按键组合,给出该组合对应的文本。

    输入格式:

    输入在一行中给出数个字符的按键组合(例如 999 表示按3次9),每个字符的按键组合之间用空格间隔,最后一个输入法组合之后以换行结束。输入数据至少包括一个字符的按键组合,且输入总长度不超过500个字符。

    输出格式:

    在一行中输出该按键组合对应的文本。

    输入样例:

    22 5555 22 666 00 88 888 7777 4444 666 44
    

    输出样例:

    ALAN TURING
    #include <iostream>
    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <math.h>
    #include <string>
    #include <map>
    
    using namespace std;
    char a[505];
    char *b[10]={"0 ","1,.?!","2ABC","3DEF",
        "4GHI","5JKL","6MNO",
        "7PQRS","8TUV","9WXYZ"
    };
    int main()
    {
        int length[10];
        for(int i=0;i<10;i++){
            length[i]=strlen(b[i]);
        }
        char x;
        int y=0;
        char s;
        do{
            s=getchar();
            if(s!=' '&&s!='
    ')
            {
                x=s;
                y++;
            }
            else{
            
                int yy;
                if(y%6==0)
                    yy=y;
                else
                    yy=y%6-1;
                printf("%c",b[x-'0'][(y-1)%length[x-'0']]);
                y=0;
    
                
            }
        }while(s!='
    ');
        return 0;
    }


  • 相关阅读:
    node-log4js3.0.6配置
    MySQL命令学习
    64位 windows10,MYSQL8.0.13重置密码(忘记密码或者无法登录)
    64位 windows10,安装配置MYSQL8.0.13
    vscode切换界面布局
    一个网站同时监听两个端口
    javascript +new Date()
    es6 解构
    react列表数据显示
    访问禁止,检测到可疑访问,事件编号
  • 原文地址:https://www.cnblogs.com/dacc123/p/8228550.html
Copyright © 2020-2023  润新知