原题链接:统计字符数
解题思路: 定义大小为26的整型数组,对应26个英文字母, 判断字符串的每个元素, 对应下表的数组值加加,
然后进行比较大小,输出即可. 别忘记清空数组.
注意事项: 别用fflush(stdin); 会出错的.
参考代码:
#include<stdio.h> #include<string.h> int main() { int i, n, j, t, max, c; int num[26] = { 0 }; //定义大小为26的整型数组,对应26个英文字母的个数 char str[1200]; scanf("%d", &n); //输入测试数据的组数 n getchar(); //接收回车 for (i = 0; i < n; i++) { gets(str); //输入字符串 j = 0; while (str[j]) { t = str[j] - 'a'; //找到字符串元素对应的数组元素,数组元素加加 num[t]++; j++; } max = 0; for (j = 0; j < 26; j++) { if (max < num[j]) //找到出现最多字符的次数 { max = num[j]; } } for (j = 0; j < 26; j++) { if (max == num[j]) { max = num[j]; //找到ascll码最小的出现最多次数的字符 c = j + 'a'; break; } } printf("%c %d\n", c, max); //输出该字符及出现次数 memset(num, 0, 26 * sizeof(int)); //清空数组 } return 0; }
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复