| ||||||||||
| 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 | |||||||||
哪位牛人能给一组测试数据呀,关于1051,每次提交都是WA????哪位牛人能给一组测试数据呀,关于1051,每次提交都是WA????
我用的是GCC,按照题目给的测试数据是没有问题的呀,可是一提交就是WA???
源代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct MorseCode
{
char *code;
int codelen;
}MorseCode[30]={{".-",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}};
char MorseChar[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ_.,?";
void GenerateMC(char ch[],int chnum,int num)
{
int i,j,pos[100];
int len[100];
int lensum=0;
char *code;
int flag;
char *ptr,*ptr1;
for(i=0;i<chnum;i++)
{
pos[i]=ch[i]-'A';
if (pos[i]==30) pos[i]=26;
if (pos[i]==-21) pos[i]=28;
if (pos[i]==-19) pos[i]=27;
if (pos[i]==-2) pos[i]=29;
len[i]=MorseCode[pos[i]].codelen;
lensum+=len[i];
}
code=(char *)malloc((lensum+1)*sizeof(char));
strcpy(code,MorseCode[pos[0]].code);
for(i=1;i<strlen(ch);i++)
{
strncat(code,MorseCode[pos[i]].code,len[i]);
}
ptr1=code;
printf("%d: ",num);
for(j=chnum-1;j>=0;j--)
{
flag=1;
for(i=0;i<30;i++)
{
if(len[j]==MorseCode[i].codelen)
{
if(j!=chnum-1)
{
ptr1+=len[j+1];
}
flag=strncmp(ptr1,MorseCode[i].code,len[j]);
if(!flag)
{
printf("%c",MorseChar[i]);
break;
}
else
{
if(j!=chnum-1)
{
ptr1-=len[j+1];
}
}
}
continue;
}
}
printf("\n");
free(code);
}
int main(void)
{
struct text *textptr;
int chnum;
int n=0;
int i;
char c;
char ch[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%99s", ch);
chnum=strlen(ch);
GenerateMC(ch,chnum,i+1);
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator