戏雷chnos.blog.chinaunix.net
chnos
全部博文(41)
ACM UVA题(38)
2012年(8)
2011年(1)
2009年(32)
止觞
分类:
2009-04-16 22:13:50
/* *************************************************************************** * Filename: 10008.c * * Description: * * Version: 0.1 * Created: 4/16/2009 9:17:41 PM * * Author: Ye Xiaofeng, yexfeng # gmail.com * *************************************************************************** */ #include <stdio.h> #include <stdlib.h> #include <string.h> struct item { char c; int num; }; int compare(void *v1, void *v2); int main(int argc, char **agv) { int line_num = 0; char line_buffer[1024]; char *ptr; int i = 0; struct item item_array[26]; for (i = 0; i < 26; i++) { item_array[i].c = 'A' + i; item_array[i].num = 0; } while (scanf("%d\n", &line_num) != -1) { for (i = 0; i < line_num; i++) { gets(line_buffer); for (ptr = line_buffer; *ptr != '\0'; ptr++) { if (isalpha(*ptr)) { *ptr = toupper(*ptr); item_array[*ptr-'A'].num++; } } } } qsort(item_array, 26, sizeof(struct item), compare); for (i = 0; i < 26; i++) { if (item_array[i].num != 0) { printf("%c %d\n", item_array[i].c, item_array[i].num); } } } int compare(void *v1, void *v2) { struct item *it1 = v1; struct item *it2 = v2; if (it1->num != it2->num) { return it2->num - it1->num; } return it1->c - it2->c; }
上一篇:ACM UVA (10026)
下一篇:ACM UVA (10009)
登录 注册