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 "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <string.h> char map[] = "22233344455566677778889999"; char str[80], telNumbers[100000][9]; int compare(const void *elem1,const void *elem2) { //为函数模板 sort 定义数组元素的比较函数 return (strcmp((char*)elem1, (char*)elem2)); }; void standardizeTel(int n) { int j, k; j = k = -1 ; while ( k<8 ) { j++; if ( str[j] == '-' ) continue; k++; if (k==3) { telNumbers[n][k]='-'; k++; } if(str[j]>='A' && str[j]<='Z') { telNumbers[n][k]=map[str[j]-'A']; continue; }; telNumbers[n][k]=str[j]; } telNumbers[n][k]='\0'; return; } void main() { int n,i,j; bool noduplicate; scanf("%d",&n); for(i=0;i<n;i++){//输入电话号码,存储到数组 telNumbers 中 scanf("%s",str); standardizeTel(i); //将 str中的电话号码转换成标准形式,存储在 telNu } qsort(telNumbers,n,9,compare);//对输入的电话号码进行排序 noduplicate = true; i=0; while(i<n){//搜索重复的电话号码,并进行输出 j=i; i++; while(i<n&&strcmp(telNumbers[i], telNumbers[j])==0) i++; if(i-j>1) { printf("%s %d\n", telNumbers[j], i-j); noduplicate = false; } } if ( noduplicate ) printf("No duplicates.\n"); } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator