#include<math.h> #include <cstring> #include <cstdio> const int MAX_LEN = 1010; char str[MAX_LEN]; int hashTable[30] = {0}; int main(){ fgets(str,1010,stdin); int len = strlen(str); for(int i =0;i<len;++i){ if(str[i] >='a' && str[i] <= 'z'){ hashTable[str[i] - 'a']++; }else if(str[i] >= 'A' && str[i] <= 'Z'){ hashTable[str[i] - 'A']++; } } int k = 0; for(int i =0;i<26;++i){ if(hashTable[i] > hashTable[k]){ k = i; } } printf("%c %d ",'a'+k,hashTable[k]); //system("pause"); return 0; }
卡在输入带空格的字符串上了。
读取带空格的字符串不能使用scanf 和 cin 。 可以使用gets, 但在PAT系统里 gets编译出错, 所以只能使用 fgets