?? 1051.c
字號(hào):
Memory: 76K Time: 0MS
Language: C Result: Accepted
Source Code
#include<stdio.h>
#include<string.h>
int main()
{
char morse[26][5]={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
char mark[4][5]={"..--",".-.-","---.","----"};
char str[401],a[101],tmp[5];
int i,j,n,num[100],k,t,len,m;
scanf("%d",&n);
for(i=0;i<n;)
{
for(j=0;j<401;j++)
str[j]='\0';
scanf("%s",a);
m=strlen(a);
for(j=0;a[j];j++)
if(a[j]>='A'&&a[j]<='Z')
num[j]=strlen(morse[a[j]-'A']);
else
num[j]=4;
for(k=0;a[k];k++)
if(a[k]>='A'&&a[k]<='Z')
strcat(str,morse[a[k]-'A']);
else if(a[k]=='_')
strcat(str,mark[0]);
else if(a[k]==',')
strcat(str,mark[1]);
else if(a[k]=='.')
strcat(str,mark[2]);
else
strcat(str,mark[3]);
//up all right!
for(j=len=0,k=m-1;k>=0;k--)
{
for(t=0;t<num[k];t++)
tmp[t]=str[t+j];
j+=num[k];
tmp[t]='\0';
for(t=0;t<26;t++)
if(strcmp(tmp,morse[t])==0)
break;
if(t<26)
a[len]=t+'A';
else
{
for(t=0;t<4;t++)
if(strcmp(tmp,mark[t])==0)
break;
if(t==0)
a[len]='_';
else if(t==1)
a[len]=',';
else if(t==2)
a[len]='.';
else
a[len]='?';
}
len++;
}
a[len]='\0';
printf("%d: %s\n",++i,a);
}
return 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -