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 |
Re:大虾们帮小弟看看我的代码吧~~ 莫名其妙的总是WA啊~~ 寒心~~(附代码及其说明)In Reply To:大虾们帮小弟看看我的代码吧~~ 莫名其妙的总是WA啊~~ 寒心~~(附代码及其说明) Posted by:whu200531130149 at 2007-02-27 22:48:32 莫非没有处理'-'? 不知道大小写是否敏感。。。 > #include <iostream> > using namespace std; > long int fix(char a[]); //输入标准化的号码 > void output(long int n); //输出号码 > void sort(long int a[],long int f,long int t); //快速排序 > > int main() > { > long int i,k,count,flag=0;char temp[30]; > long int a[100001],*p,*q; > cin>> k; > for(i=0;i<k;i++) > { > cin>>temp; > a[i]=fix(temp); > } > a[i]=-1; //电话号码簿结束标志 > sort(a,0,k-1); > p=a;q=a;flag=0; > while(*p!=-1) //输出电话号码簿 > { > count=0; > while(*p==*q) > { > q++;count++; > } > if(count>1) > {output(*p);cout<<' '<<count<<endl;flag=1;} > p=q; > } > if(flag==0)cout<<"No duplicates."; > return 1; > } > > long int fix(char a[]) > { > char *p;long int flag,sum; > p=a;sum=0; > while(*p!='\0') > { > flag=0; > switch(*p) > { > case 'A':case'B':case'C': > *p=2;flag=1;break; > case 'D':case'E':case'F': > *p=3;flag=1;break; > case 'G':case'H':case'I': > *p=4;flag=1;break; > case 'J':case'K':case'L': > *p=5;flag=1;break; > case 'M':case'N':case'O': > *p=6;flag=1;break; > case 'P':case'R':case'S': > *p=7;flag=1;break; > case 'T':case'U':case'V': > *p=8;flag=1;break; > case 'W':case'X':case'Y': > *p=9;flag=1;break; > case '0':case '1':case '2':case '3':case '4': > case '5':case '6':case '7':case '8':case '9': > *p-='0';flag=1;break; > } > if(flag==1)sum=sum*10+*p; > p++; > } > return sum; > } > > void output(long int n) //标准输出电话号码 解决了首位为零的问题 > { > long int j,k,t; > j=1000000; > for(k=1;k<8;k++) > { > t=(n/j)%10; > cout<<t; > if(k==3)cout<<'-'; > j/=10; > } > } > > void sort(long int a[],long int f,long int t) //快速排序应该不会有什么问题吧?? > { > long int i,j,k,p; > if(t-f>1) > { > k=a[f];i=f;j=t;p=-1; > while(j>i) > if(p==1) > { > while(j>i&&a[i]<=k) > i++; > a[j]=a[i]; > p=-1; > } > else > { > while(j>i&&a[j]>=k) > j--; > a[i]=a[j]; > p=1; > } > a[i]=k; > sort(a,f,i-1); > sort(a,i+1,t); > } > } > > 麻烦各位大虾帮帮忙看看到底出了什么问题,或者谁有比较好的测试数据留下也好,小弟多谢了~~~~ > Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator