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

求大牛们帮帮忙吧。。。。实在是不知道为什么WA了

Posted by mw19930312 at 2012-11-23 20:51:29 on Problem 1002
#include<iostream>
#include<cstdlib>
char origin[110000][100],transformed[110000][10];
using namespace std;
int cmp(const void *a,const void *b)
{
	return strcmp((char*)a,(char*)b);
}
int main()
{
	void trans(char *p,char *q);
	int m=0,n;
	cin >> n;
	fflush(stdin);
	while(m<n)
	{
		gets(*(origin+m));
		trans(*(origin+m),*(transformed+m));
		m++;
	}
	qsort(transformed,n,sizeof(transformed[0]),cmp);
	int count=1;
	int flag=0;
	char s[10]={};
	strcpy(*(transformed+n),s);
	for(int i=0;i<=n;i++)
	{
		
		if((strcmp(s,*(transformed+i))!=0))		
		{
			if(count!=1)
			{
				printf("%s %d\n",s,count);
			}
			strcpy(s,*(transformed+i));
			count=1;
		}
		else
		{
			flag=1;
			count++;
		}
	}
	if(flag==0)
	printf("No duplicates. ");
	return 0;
}
void trans(char *p,char *q)
{
	int i=0;int j=0;
	while(*(p+i)!='\0')
	{
		if(j==3)
		{
			*(q+j)='-';
			j++;
		}
		else
		{
			switch(*(p+i))
			{
				case'A':
				case'B':
				case'C': *(q+j)='2';j++;break;
				case'D':
				case'E':
                case'F':*(q+j)='3';j++;break;
				case'G':
				case'H':
				case'I':*(q+j)='4';j++;break;
				case'J':
				case'K':
				case'L':*(q+j)='5';j++;break;
				case'M':
				case'N':
				case'O':*(q+j)='6';j++;break;
				case'P':
				case'R':
				case'S':*(q+j)='7';j++;break;
				case'T':
				case'U':
				case'V':*(q+j)='8';j++;break;
				case'W':
				case'X':
				case'Y':*(q+j)='9';j++;break;
				case'0':*(q+j)='0';j++;break;
				case'1':*(q+j)='1';j++;break;
				case'2':*(q+j)='2';j++;break;
				case'3':*(q+j)='3';j++;break;
				case'4':*(q+j)='4';j++;break;
				case'5':*(q+j)='5';j++;break;
				case'6':*(q+j)='6';j++;break;
				case'7':*(q+j)='7';j++;break;
				case'8':*(q+j)='8';j++;break;
				case'9':*(q+j)='9';j++;break;
				default:break;			
			}
			i++;
		}
	}
	return;
}

写的稍微麻烦了一点,已知的数据都试了,都没问题,不知道哪里错了。。。

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