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 |
Re:求大神分析一下runtime error 的原因,才开始做,没经验!不胜感激。。。In Reply To:求大神分析一下runtime error 的原因,才开始做,没经验!不胜感激。。。 Posted by:21090922 at 2012-07-28 15:34:18 > #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