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 |
我这个程序到底怎么了?我在tc2中运行说数组的范围太大,但是在vc运行又没错。 提交后又说runtime erro.真不知道咋搞的。 源程序: #include "stdio.h" #include "math.h" #define N 100000 long int a[N]; long a2i(str) char str[]; { int i,j,d; long int n; n=0;i=0;j=0; while(j<7){ switch(str[i++]){ case 'A': case 'B': case 'C': d=2;break; case 'D': case 'E': case 'F': d=3;break; case 'G': case 'H': case 'I': d=4;break; case 'J': case 'K': case 'L': d=5;break; case 'M': case 'N': case 'O': d=6;break; case 'P': case 'R': case 'S': d=7;break; case 'T': case 'U': case 'V': d=8;break; case 'W': case 'X': case 'Y': d=9;break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': d=str[i-1]-'0';break; default: d=-1;break; } if(d!=-1){ j++; n=n*10+d; } } return n; } void qsort(c,left,right) long int c[]; int left,right; { int le,b; long int t,t1; if (left<right) { le=left; for (b=le+1;b<=right;b++) if ((c[b]<c[left]) && b!=++le) { t=a[le]; c[le]=c[b]; c[b]=t; } t1=c[le]; c[le]=c[left]; c[left]=t1; qsort(c,left,le-1); qsort(c,le+1,right); } } main() { char str[20]; int i,n; long int m; int time=1,flag=0; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%s",str); a[i]=a2i(str); } qsort(a,0,n-1); m=a[0]; for(i=1;i<n;i++) { if(m!=a[i]) { if(time>1){ flag=1,printf("%d",m/10000),printf("-"); printf("%d",m%10000); printf(" "); printf("%d\n",time); } m=a[i]; time=1; } else { time++; if(time>1&&i==n-1){ flag=1,printf("%d",m/10000),printf("-"); printf("%d",m%10000); printf(" "); printf("%d\n",time); } } } if(flag==0) printf("No duplication."); } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator