【C语言蓝桥杯每日一题】—— 单词分析

  • 前言
    • 单词分析
  • 总结撒花


博客昵称:博客小梦
最喜欢的座右铭:全神贯注的上吧!!!
作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

博主小留言:哈喽!各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!

前言

  哈喽各位友友们,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!我仅已此文,和大家分享【蓝桥杯每日一题】—— 单词分析~这里利用了数组指针的方法知识, 都是精华内容,可不要错过哟!!!

单词分析

题目描述
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。
输入描述
输入一行包含一个单词,单词只由小写英文字母组成。
对于所有的评测用例,输入的单词长度不超过 1000。
输出描述
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个。
第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。

解题思路分析:

  • 首先认真读题,然后分析,寻找最优解。
  • 首先,我们先创建一个数组,其实就是一个用来统计26个字母出现次数的数组。让数组下标0~25 对应 a 到 z 。
  • 循环输入字母,出现一次就让对应的数组元素加1。 遇到回车键‘\n’就停止。
    然后循环26次,将数组中的对应元素值(出现次数)进行比较。将max赋值为 i 。
  • 然后就可以输出对应最大出现次数和对应的字母啦。
  • 这里用到了Ascall码值和其对应关系相关知识,从而实现数字和字母的相加减的转化。

解题源码分享:

#include #include int main(int argc, char *argv[]){  int count[26] = {0};  int max = 0;  char ch;  while((ch = getchar()) != '\n')  {    count[ch -'a']++;  }  int i = 0;  for(i = 1;i < 26; i++)  {    if(count[i] > count[max])    max = i;  }  printf("%c\n%d", max +'a',count[max]);  return 0;}

程序输出结果验证:

总结撒花

本篇文章旨在分享【C语言蓝桥杯每日一题】—— 单词分析。希望大家通过阅读此文有所收获!如果我写的有什么不好之处,请在文章下方给出你宝贵的意见。如果觉得我写的好的话请点个赞赞和关注哦~