Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
请教下,WA了2小时了。。。#include "stdio.h" #include "string.h" char push(char *str,char *s); char out(char *str,int t); char search(char *s); char p[100][10]={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--..","..--",".-.-","---.","----"}; int main() { int i,j,k,n,len,sum,test=0; char s[150],str[800],c; int hh[100]={2,4,4,3,1,4,3,4,2,4,3,4,2,2,3,4,4,3,3,1,3,4,3,4,4,4,4,4,4,4}; int num[110]; scanf("%d%c",&n,&c); for ( i=1 ; i<=n ; i++ ) { gets(s); len=strlen(s); for ( j=0 ; j<len ; j++ ) if ( s[j]>='A' && s[j]<='Z' ) num[j]=hh[s[j]-'A']; else num[j]=4; sum=0; str[0]=0; for ( j=0 ; j<len ; j++ ) { if ( s[j]>='A' && s[j]<='Z' ) push(str,p[s[j]-'A']); else if ( s[j]=='_' ) push(str,p[26]); else if ( s[j]==',' ) push(str,p[27]); else if ( s[j]=='.' ) push(str,p[28]); else if ( s[j]=='?' ) push(str,p[29]); } for ( j=0 ; j<len/2 ; j++ ) {c=num[j];num[j]=num[len-j-1];num[len-j-1]=c;} str[0]=0; printf("%d: ",++test); for ( j=0 ; j<len ; j++ ) out(str,num[j]); printf("\n"); } return 0; } char push(char *str,char *s) { int len=strlen(s); for ( int i=0 ; i<len ; i++ ) str[++str[0]]=s[i]; return *str; } char out(char *str,int t) { char ss[10]; for ( int i=0 ; i<t ; i++ ) ss[i]=str[++str[0]]; ss[t]=0; char c=search(ss); if ( c=='Z'+1 ) printf("_"); else if ( c=='Z'+2 ) printf(","); else if ( c=='Z'+3 ) printf("."); else if ( c=='Z'+4 ) printf("?"); else printf("%c",c); return *str; } char search(char *s) { for ( int i=0 ; i<30 ; i++ ) if (strcmp(p[i],s)==0) return i+'A'; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator