Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

哪位牛人能给一组测试数据呀,关于1051,每次提交都是WA????

Posted by hackbutter at 2008-03-13 17:19:07
哪位牛人能给一组测试数据呀,关于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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator