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 |
求大神分析一下runtime error 的原因,才开始做,没经验!不胜感激。。。#include <stdio.h> #include <string.h> #include <stdlib.h> char map[] = "22233344455566677778889999"; //字母转化成数字 char str[50]; //读入的号码 char tel[10000][9]; //标准的号码 //标准函数sort()的比较条件 int compare ( const void* elem1, const void* elem2 ) { return strcmp( (char*)elem1, (char*)elem2 ); } //好记的号码转化为标准的号码 void standardizeTel ( int n ) { int k = 0; for ( int i = 0; str[i] != EOF; i++ ) { if (str[i] == '-') { continue; } if ( k == 3 ) { tel[n][k++] = '-'; } if ( str[i] >= 'A' && str[i] <= 'Z') { tel[n][k++] = map[ str[i] - 'A' ]; continue; } tel[n][k++] = str[i]; } tel[n][k] = '\0'; } int main () { int n; //号码的数量 scanf ( "%d", &n ); for ( int i = 0; i < n; i++ ) //输入n个号码并标准化 { scanf ( "%s", str ); standardizeTel ( i ); } qsort ( tel, n, 9, compare ); //字典排序 bool duplicate = true; int j , k = 0; while ( k < n ) { j = k; k++; while ( (strcmp ( tel[j], tel[k] ) == 0) && (k < n) ) { k++; } if( k - j > 1) { duplicate = false; printf ( "%s %d\n", tel[j], (k - j) ); } } if ( duplicate ) { 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