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 |
你malloc用错了,查一下用法吧In Reply To:互相学习一下,难道动态的分配空间不行的,老是RE(附code)测试都对的 Posted by:RUNSLOWLY at 2008-11-09 01:13:22 > #include<iostream> > #include<string.h> > #include<stdlib.h> > #include<malloc.h> > using namespace std; > char *str[10000005]; > > int char_interpret(char c) > { > if(c>='A'&&c<='C') > return '2'; > if(c>='D' && c<='F') > return '3'; > if(c>='G'&&c<='I') > return '4'; > if(c>='J' && c<='L') > return '5'; > if(c>='M' && c<='O') > return '6'; > if(c=='P'||c=='R'||c=='S') > return '7'; > if(c=='T'||c=='U'||c=='V') > return '8'; > if(c=='W'||c=='X'||c=='Y') > return '9'; > return c; > } > > int cmp(const void *b,const void *a) > { > return (strcmp(*(char **)b,*(char **)a)); > } > > void interpret(char *p) > { > int i,k; > k=0; > for(i=0;*(p+i)!='\0';i++) > { > if(*(p+i)!='-') > { > *(p+k++)=char_interpret(*(p+i)); > } > > } > *(p+k)='\0'; > // printf("%s\n",p); > } > int main() > { > int i,n,sum,flag; > flag=0; > cin>>n; > for(i=0;i<n;i++) > { > str[i]=(char *)malloc(sizeof(char *)); > cin>>str[i]; > interpret(str[i]); > } > qsort(str,n,sizeof(str[0]),cmp); > sum=1; > for(i=1;i<n;i++) > { > if(strcmp(str[i-1],str[i])==0) > sum++; > else > { > if(sum>1) > { > flag=1; > for(int j=0;str[i-1][j]!='\0';j++) > { > if(j==3) > cout<<'-'; > cout<<str[i-1][j]; > } > cout<<' '<<sum<<endl; > } > sum=1; > } > } > if(sum>1) > { > flag=1; > for(int j=0;str[i-1][j]!='\0';j++) > { > if(j==3) > cout<<'-'; > cout<<str[i-1][j]; > } > cout<<' '<<sum<<endl; > } > if(flag==0) > printf("No duplicates.\n"); > return 0; > } > Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator