站点图标 陌路寒暄

小平学外语

小平学外语

时间: 1ms        内存:128M

描述:

补全代码,只需要提交补充的部分,提交时选择C/C++提交

小平学长最近闲来无事迷上了学外语。最近小平遇到了一个梗:如何把一个大写字母的俄语单词翻译成对应的英语字母组成的单词,已知俄语字母与英语字母有以下对应关系:

А——A
Б——B
В——V
Г——G
Д——D
Е,Ё,Э——E
Ж——J
З——Z
И,Й——I
К——K
Л——L
М——M
Н——N
О——O
П——P
Р——R
С——S
Т——T
У——U
Ф——F
Х——H
Ц——C
Ч——CH
Ш,Щ——SH
Ы——Y
Ю——IU
Я——IA

提示:一个俄语字母占用两个字节(一个char类型的字符占用的是一个字节),由于键盘不能输入俄语字符,测试时直接复制粘贴即可。

#include<stdio.h>
#include<string.h>
int main()
{
    char  ru[] = "АБВГДЕЁЭЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЮЯ";
    char en[2][32] =
    {
        {'A','B','V','G','D','E','E','E','J','Z','I','I','K','L','M','N','O','P','R','S','T','U','F','H','C','C','S','S','Y','I','I','\0'},
        {'\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','H','H','H','\0','U','A','\0'}
    };

    int n = 0;
    int j;
    int cmp;
    char str[66];
    char incmp[3];
    char rucmp[3];
    char print[33];
    scanf("%s",str);
    for(int i = 0; str[i]!='\0'; )
    {
        cmp=0;
        incmp[cmp++]=str[i++];
        incmp[cmp++]=str[i++];
        incmp[cmp]='\0';
        for(j = 0; ru[j]!='\0';)
        {
            cmp=0;
            rucmp[cmp++]=ru[j++];
            rucmp[cmp++]=ru[j++];
            rucmp[cmp]='\0';
            if(strcmp(incmp,rucmp)==0)
            {
            /*在此处补全代码*/
               
            /****************/

            }
        }
        int col = (j-1)/2;
        for(int k=0; k<2 && en[k][col]!='\0'; )
        {
            print[n++] = en[k++][col];
        }
    }
    print[n] = '\0';
    printf("%s",print);
}

输入:

输入一个只由俄语大写字母组成的俄语单词,字符个数<25。

输出:

输出该单词对应的英语字母组成的单词。

示例输入:

ОТЛИЧНО

示例输出:

OTLICHNO

提示:

参考答案(内存最优[0]):

break;

参考答案(时间最优[0]):

#include<stdio.h>
#include<string.h>
int main()
{
    char  ru[] = "АБВГДЕЁЭЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЮЯ";
    char en[2][32] =
    {
        {'A','B','V','G','D','E','E','E','J','Z','I','I','K','L','M','N','O','P','R','S','T','U','F','H','C','C','S','S','Y','I','I','\0'},
        {'\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','H','H','H','\0','U','A','\0'}
    };

    int n = 0;
    int j;
    int cmp;
    char str[66];
    char incmp[3];
    char rucmp[3];
    char print[33];
    scanf("%s",str);
    for(int i = 0; str[i]!='\0'; )
    {
        cmp=0;
        incmp[cmp++]=str[i++];
        incmp[cmp++]=str[i++];
        incmp[cmp]='\0';
        for(j = 0; ru[j]!='\0';)
        {
            cmp=0;
            rucmp[cmp++]=ru[j++];
            rucmp[cmp++]=ru[j++];
            rucmp[cmp]='\0';
            if(strcmp(incmp,rucmp)==0)
            {
break;
          
            }
        }
        int col = (j-1)/2;
        for(int k=0; k<2 && en[k][col]!='\0'; )
        {
            print[n++] = en[k++][col];
        }
    }
    print[n] = '\0';
    printf("%s",print);
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

退出移动版