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

str在使用之前应该先清零。

Posted by qinlu at 2004-07-20 21:34:19 on Problem 1002
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:
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