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

在VC6.0上能运行,结果一样,但是狂RE,各位大虾帮忙看看,我才大一,新手,想了很久了

Posted by 317781250 at 2008-07-13 23:24:49 on Problem 1002
#include "stdio.h"
#include "string.h"

main()
{int n,x[100]={1},y=0,i,j,t,r,z[100]={0};
char a[100][100],b[100][8],s[100];
 scanf("%d",&n);
 for(i=0;i<n;i++)
  scanf("%s",&a[i]);




 for(i=0;i<n;i++)                                     /*将'-'去掉,搞成一连没有间隔的字符*/ 
   for(j=0;a[i][j]!='\0';j++)
   {if(a[i][j]=='-'&&a[i][j+1]=='-')
   {for(t=j;(a[i][t+2])!='\0';t++) a[i][t]=a[i][t+2];}
     if(a[i][j]=='-')
     	{for(t=j;(a[i][t+1])!='\0';t++)
     	  a[i][t]=a[i][t+1];
     	}
   }
   for(i=0;i<n;i++){a[i][7]='\0';}                    /*在最后加上结束符*/

 for(i=0;i<n;i++)
  {for(j=0;j<8;j++)
  	{
  	 if(a[i][j]=='A'||a[i][j]=='B'||a[i][j]=='C')
  	  b[i][j]='2';
  	 else if(a[i][j]=='D'||a[i][j]=='E'||a[i][j]=='F')
            b[i][j]='3';
          else if(a[i][j]=='G'||a[i][j]=='H'||a[i][j]=='I')
                b[i][j]='4';
               else if(a[i][j]=='J'||a[i][j]=='K'||a[i][j]=='L')
                      b[i][j]='5';
                     else if(a[i][j]=='M'||a[i][j]=='N'||a[i][j]=='O')
                            b[i][j]='6';
                           else if(a[i][j]=='P'||a[i][j]=='R'||a[i][j]=='S')
                                  b[i][j]='7';
                                 else if(a[i][j]=='T'||a[i][j]=='U'||a[i][j]=='V')
                                       b[i][j]='8';
                                        else if(a[i][j]=='W'||a[i][j]=='X'||a[i][j]=='Y')
                                               b[i][j]='9';
                                               else b[i][j]=a[i][j];
  }}

 
 for(i=0;i<n-1;i++)               /*排序*/
  for(j=i+1;j<n;j++)
    {if(b[i][0]>b[j][0])
      {strcpy(s,b[i]);
       strcpy(b[i],b[j]);	
       strcpy(b[j],s);}}
for(i=1;i<n;i++)                  /*如果某一行是前面出现过的,则z[i]=1*/
for(t=0;t<i;t++)
	if(strcmp(b[t],b[i])==0)
	 {z[i]=1;}

for(i=0;i<n;i++)	               /*如果某一行,这一行的z[i]=0,即前面没出现过,就计算它后面有多少个一样的*/
	if(z[i]==0)                   
	 {for(j=i+1;j<n;j++)
	 	{if(strcmp(b[i],b[j])==0)
	 	 x[i]++;}
     }
for(i=1;i<n;i++) x[i]++;
	 for(t=0;t<n;t++)
	 {if(x[t]>1)
	 {printf("%c%c%c-%c%c%c%c %d\n",b[t][0],b[t][1],b[t][2],b[t][3],b[t][4],b[t][5],b[t][6],x[t]);
    	y=1;}}
 
      if(y!=1)
     printf("No duplicates.\n");
   }

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