1002.c

来自「pku online judge的一些题目的代码,全部AC的,适合编程初学者以及」· C语言 代码 · 共 47 行

C
47
字号
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int count,num[100000];
char a[100000][20],b[100000][20];
char dig(char c)
{
	return c>80?(c+84)/3:(c+85)/3;
}
int cmp ( const void *a , const void *b ) 
{ 
	return *(int *)a - *(int *)b; 
} 
int main()
{
	long n,t=0,i,j,k=0;
	scanf("%ld",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s",a[i]);
		for(j=t=0;a[i][j];j++)
			{
				if(a[i][j]=='Q'||a[i][j]=='-'||a[i][j]=='Z')
					continue;
			    if(isalpha(a[i][j])) 
					a[i][j]=dig(a[i][j]);
				b[i][t++]=a[i][j];
			}
		num[i]=atol(b[i]);
	}
	qsort(num,n,sizeof(num[0]),cmp);
	for(i=t=0,count=1;i<n;i++)                   
	{
		if(num[i]==num[i+1])
		{
			count++;
            t++;
			continue;
		}
		if(count>1)
			printf("%03ld-%04ld %ld\n",num[i]/10000,num[i]%10000,count);
		count=1;
	}
	if(t==0)
		printf("No duplicates.\n");
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?