| ||||||||||
| 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 | |||||||||
改了这么多次还不行啊,???!!!#include<stdio.h>
#define N 50000
#define TRUE 1
#define FALSE 0
short s[]={0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,-1,7,7,8,8,8,9,9,9,-1};
int main()
{
int i, j, k,m;
int n, flag;
int t[N];
char tel2[30];
char index;
unsigned long tel[N];
unsigned long temp;
for (i=0; i<N; i++)
t[i] = 0;
k = 0;
scanf("%d", &n);
for (i=0; i<n; i++)
{
temp = 0;
scanf("%s", tel2);
for (j=0; tel2[j]!='\0'; j++) /*化为长整型数*/
{
index = tel2[j];
if (index != '-')
temp = temp * 10 + s[index - '0'];
}
for (j=k-1; j>=0; j--) /*如果之前已记录此数,则其个数加一*/
{
if (temp == tel[j])
{
t[j]++;
break;
}
}
if (j < 0)
{
tel[k] = temp; /*之前数组中无此数,则在最末加入此数,计数加一*/
t[k]++;
k++;
}
}
m = k-1; /*排序*/
for (i=0; i<=m-1; i++)
{
k = i;
for (j=i+1; j<=m; j++)
if (tel[j] < tel[k]) k = j;
if (k != i)
{
temp = tel[k];
tel[k] = tel[i];
tel[i] = temp;
}
}
flag = FALSE;
for (j=0; j<=m; j++)
if (t[j] >= 2)
{
printf("%0.3ld-%0.4ld %d\n", tel[j]/10000,tel[j]%10000,t[j]);
flag = TRUE;
}
if (!flag) 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