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

求救~~为什么1002这样过不了啊??希望高手帮个忙~~谢谢啦!!

Posted by wsy2846513 at 2010-05-03 18:47:51
#include<iostream>
#include<string>
using namespace std;
char * cz(char m[])//定义函数将字符串m转化为标准形式
{
	int i,k=0;
	char c[20],*n;
	n=c;
	for(i=0;m[i]!='\0';i++)
	{
		
		if(k==3)
		{
			n[3]='-';
			k=4;
		}
		if(m[i]=='-')
		{
			continue;
		}
	    if((m[i]=='A')||(m[i]=='B')||(m[i]=='C'))
		{
			n[k]='2';
			k++;
		}
		else if((m[i]=='D')||(m[i]=='E')||(m[i]=='F'))
		{
			n[k]='3';
			k++;
		}
		else if((m[i]=='G')||(m[i]=='H')||(m[i]=='I'))
		{
			n[k]='4';
			k++;
		}
		else if((m[i]=='J')||(m[i]=='K')||(m[i]=='L'))
		{
			n[k]='5';
			k++;
		}
		else if((m[i]=='M')||(m[i]=='N')||(m[i]=='O'))
		{
			n[k]='6';
			k++;
		}
		else if((m[i]=='P')||(m[i]=='R')||(m[i]=='S'))
		{
			n[k]='7';
			k++;
		}
		else if((m[i]=='T')||(m[i]=='U')||(m[i]=='V'))
		{
			n[k]='8';
			k++;
		}
		else if((m[i]=='W')||(m[i]=='X')||(m[i]=='Y'))
		{
			n[k]='9';
			k++;
		}
		else if((m[i]<='9')&&(m[i]>='0'))
		{
			n[k]=m[i];
			k++;
		}
		
	}
	n[k]='\0';
	return n;
}
int main()
{
	char ap[100][50],bp[100][50],cp[50][50];//ap用于存储所给字符串,bp用于存放ap的标准形式,cp用于存放出现两次以上的字符串,数组c用于存储相应字符串出现的字数。
	int n,i,j,k=0,c[50];
	cin>>n;
	for(i=0;i<50;i++)
	{
		c[i]=1;
	}
	for(i=0;i<n;i++)
	{
		cin>>ap[i];
	}
	for(i=0;i<n;i++)
	{
		strcpy(bp[i],cz(ap[i]));
	}
	for(i=0;i<n;i++)
	{
		int temp=0;
		if(strcmp(bp[i],"0")==0)
		{
			continue;
		}
		for(j=i+1;j<n;j++)
		{
			if((strcmp(bp[i],bp[j])==0)&&(bp[i]!="0"))
			{
				temp=1;
				strcpy(cp[k],bp[i]);
				strcpy(bp[j],"0");
				c[k]++;
			}
		}
		if(temp==1)
		{
			k++;
		}
	}
	for(i=0;i<k;i++)
	{
		int r=0;
		for(j=0;j<k-i;j++)
		{
			if(strcmp(cp[j],cp[j+1])>0)
			{
				r=1;
				char temp[20];
				strcpy(temp,cp[j]);
				strcpy(cp[j],cp[j+1]);
				strcpy(cp[j+1],temp);
				int t;
				t=c[j];
				c[j]=c[j+1];
				c[j+1]=t;
			}
		}
		if(r==0)
		{
			break;
		}
	}
	for(i=0;i<k;i++)
	{
		cout<<cp[i]<<" "<<c[i]<<endl;
	}
	if(k==0)
	{
		cout<<"No duplicates."<<endl;
	}
	return 0;
}

样例的输入输出都可以实现,可是一提交就是wrong answer啊,都弄了一天多了~~求高手帮我一把~~谢谢啦!!我是哪里没有考虑到还是哪里错了???

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