題意:

對於每行文字輸出出現最多次的大小寫英文字母,如果有一樣多的就按照A-Z.a-z的順序輸出

 

解法:

對於每行文字去計數然後輸出最多的

 

程式碼:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX(x,y)( ((x)>(y))?(x):(y) )
char str[1234567];
int num[256];

int main(){
    int i;
    int max;
    while(gets(str)){
        if(str[0]=='\0')continue;
        memset(num,0,sizeof(num));
        for(i=0;str[i]!='\0';++i)++num[(int)str[i]];
        max = 0;
        for(i='A';i<='Z';++i)max = MAX(max,num[i]);
        for(i='a';i<='z';++i)max = MAX(max,num[i]);
        for(i='A';i<='Z';++i)if(num[i]==max)putchar(i);
        for(i='a';i<='z';++i)if(num[i]==max)putchar(i);
        printf(" %d\n",max);

    }
    return 0;
}

arrow
arrow
    全站熱搜

    alan790712 發表在 痞客邦 留言(0) 人氣()