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

📄 1051.c

📁 pku online judge的一些题目的代码,全部AC的,适合编程初学者以及爱好者
💻 C
字号:
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;
}

⌨️ 快捷键说明

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