⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1905714_ac_0ms_60k.c

📁 北大大牛代码 1240道题的原代码 超级权威
💻 C
字号:
# include <stdio.h>
# include <string.h>

char M[27][6] = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
int main()
{
	int num[101];
	char morse[500], de[110], tmp[10];
	int n;
	int i, j, p, k;

	scanf("%d",&n);
	for(i = 1; i <= n; i++)
	{
	    memset(de,'\0',sizeof(de));
	    memset(morse,'\0',sizeof(morse));
		scanf("%s",de);
		for(j = 0; de[j]!='\0'; j++)
		{
			switch(de[j])
			{
			case '.': num[j] = 4;strcat(morse,"---.");break;
			case ',': num[j] = 4;strcat(morse,".-.-");break;
			case '?': num[j] = 4;strcat(morse,"----");break;
			case '_': num[j] = 4;strcat(morse,"..--");break;
			default : num[j] = strlen(M[de[j]-'A']);strcat(morse,M[de[j]-'A']);break;
			}
		}
		printf("%d: ",i);
		p = 0;
		for(j = strlen(de) - 1; j >= 0; j--)
		 {
			memset(tmp,'\0',sizeof(tmp));
			/*memcpy(tmp,&morse[p],num[j]);*/
			for(k = p; k < p + num[j]; k++)
				tmp[k-p] = morse[k];
			tmp[num[j]] = '\0';
			p += num[j];
			if(strcmp(tmp,"---.")==0)  {printf(".");continue;}
			if(strcmp(tmp,".-.-")==0)  {printf(",");continue;}
			if(strcmp(tmp,"----")==0)  {printf("?");continue;}
			if(strcmp(tmp,"..--")==0)  {printf("_");continue;}
			for(k = 0; k < 26; k++)
				if(strcmp(tmp,M[k])==0)
				{
					printf("%c",k+'A');
					break;
				}
		}
		printf("\n");
	}
	return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -