找回密码
 中文实名注册
查看: 239|回复: 1

p2. 摩尔斯电码 (15 pts)

[复制链接]

697

主题

1085

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
22873
发表于 2022-6-5 19:39:07 | 显示全部楼层 |阅读模式
p2. 摩尔斯电码 (15 pts)

回复

使用道具 举报

1

主题

57

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
发表于 2022-6-8 20:30:04 | 显示全部楼层
[C++] 纯文本查看 复制代码
#include <bits/stdc++.h>
using namespace std;
int main( ) 
{
    char ch[26][5];
    strcpy(ch[0],"*-");
    strcpy(ch[1],"-***");
    strcpy(ch[2],"-*-*");
    strcpy(ch[3],"-**");
    strcpy(ch[4],"*");
    strcpy(ch[5],"**-*");
    strcpy(ch[6],"--*");
    strcpy(ch[7],"****");
    strcpy(ch[8],"**");
    strcpy(ch[9],"*---");
    strcpy(ch[10],"-*-");
    strcpy(ch[11],"*-**");
    strcpy(ch[12],"--");
    strcpy(ch[13],"-*");
    strcpy(ch[14],"---");
    strcpy(ch[15],"*--*");
    strcpy(ch[16],"--*-");
    strcpy(ch[17],"*-*");
    strcpy(ch[18],"***");
    strcpy(ch[19],"-");
    strcpy(ch[20],"**-");
    strcpy(ch[21],"***-");
    strcpy(ch[22],"*--");
    strcpy(ch[23],"-**-");
    strcpy(ch[24],"-*--");
    strcpy(ch[25],"--**");
    int i=0;
    char c;
    char str[500];
    while(scanf("%c",&c)!=EOF)
    {
        if(c=='|'||c=='\n')
        {
            str[i]='\0';
            for(int j=0;j<26;j++)
            {
                if(strlen(str)==strlen(ch[j]))
                if(!strncmp(str,ch[j],strlen(ch[j])))
                {
                    printf("%c",j+'A');
                    break;
                }
            }
            i=0;
            continue;
        }
        str[i++]=c;
    }
    return 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 中文实名注册

本版积分规则

小黑屋|东台市机器人学会 ( 苏ICP备2021035350号-1;苏ICP备2021035350号-2;苏ICP备2021035350号-3 )

GMT+8, 2024-5-17 22:11 , Processed in 0.041237 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表