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 |
str在使用之前应该先清零。In Reply To:高手帮忙看看为何wa!!!!!郁闷中 Posted by:Ryan1949 at 2004-07-20 16:29:48 ltoa之前增加memset( str, 0, sizeof( str ) )就好! :) > #include<stdio.h> > #include<string.h> > #include<stdlib.h> > #include<ctype.h> > #define Max 100000 > > int turn[26] = {2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9}; > long date[Max],c,n; > char s[200],str[20]; > > long covert() //转换成标准形式// > { > int i,t; > long k; > > k = 0; > for (i = 0;i < strlen(s);i++) { > if (s[i] >= '0' && s[i] <= '9') { > t = s[i] - '0'; > k = k * 10 + t; > } > else > if (isupper(s[i])) { > t = turn[s[i] - 'A']; > k = k * 10 + t; > } > } > return k; > } > > void quicksort(long i,long t) //快排// > { > long j,k,x; > j = i; k = t; x = date[(i + t) / 2]; > do { > while (date[j] < x) j++; > while (date[k] > x) k--; > if (j <= k) { > c = date[j]; > date[j] = date[k]; > date[k] = c; > j++; k--; > } > } > while (j <= k); > if (i < k) quicksort(i,k); > if (j < t) quicksort(j,t); > } > > void doit() > { > long i,k,c;//c纪录相同号码出现次数// > int t,get; > > quicksort(0,n - 1); > c = 1; date[n] = -1; get = 0; > for (i = 0;i < n;i++) { > if (date[i] == date[i + 1]) c++; > else { > if (c != 1) { > ltoa(date[i],str,10);//转成字符串输出// > while (strlen(str) < 7) { > for (t = strlen(str);t > 0;t--)//补‘0’// > str[t] = str[t - 1]; > str[0] = '0'; > } > for (t = 0;t <= 6;t++) { > printf("%c",str[t]); > if (t == 2) printf("-"); > } > printf(" %ld\n",c); > get = 1; > } > c = 1; > } > } > if (!get) printf("No duplicates.\n"); > } > > void init() > { > long i; > > scanf("%ld",&n); > for (i = 0;i < n;i++) { > scanf("%s",&s); > date[i] = covert(); > } > } > > void main() > {init(); doit();} Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator