直接做。
/* ACM 499 What's The Frequency, Kenneth? * mythnc * 2011/11/06 22:05:39 * run time: 0.044 */ #include <stdio.h> #define MAXARY 52 void printout(int *); void init(int *); int main(void) { int letter[MAXARY] = { 0 }; int c; while ((c = getchar()) != EOF) { if (c >= 'A' && c <= 'Z') letter[c - 'A']++; else if (c >= 'a' && c <= 'z') letter[c - 'a' + 26]++; else if (c == '\n') { printout(letter); init(letter); } } return 0; } /* printout: print out the max letters */ void printout(int *p) { int i, max; /* find the element which has max value */ for (i = max = 0; i < MAXARY; i++) if (p[max] < p[i]) max = i; /* output */ for (i = 0; i < MAXARY; i++) if (p[i] == p[max] && i < 26) printf("%c", 'A' + i); else if (p[i] == p[max] && i >= 26) printf("%c", 'a' + i - 26); printf(" %d\n", p[max]); } /* init: initialize array to zero */ void init(int *p) { int i; for (i = 0; i < MAXARY; i++) p[i] = 0; }
沒有留言:
張貼留言