蓝桥杯单词分析题,代码解析while,count作用

题目:单词分析题
问题:10,11行while,count的代码是什么意思
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。
输入描述
输入一行包含一个单词,单词只由小写英文字母组成。

对于所有的评测用例,输入的单词长度不超过 1000。

输出描述
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个。

第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。

输入输出样例
示例 1
输入

lanqiao

输出

a
2


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  // 请在此输入您的代码
  int count[26]={0},max=0,i;
  char ch;
  while((ch=getchar())!='\n')
    count[ch-'a']++;
  for(i=1;i<26;i++)
    if(count[i]>count[max])
      max=i;
  printf("%c\n%d",max+'a',count[max]);
  return 0;
}

while((ch=getchar())!='\n') 通过不断地读入输入的字符,直到遇到换行符 \n 为止,将读入的字符储存在变量 ch 中。
count[ch-'a']++ 这行代码是统计字符 ch 出现的次数的,数组 count 中的每一个元素对应一个小写字母,用它们的 ASCII 码值与字符 ch 相减得到的差值来作为下标,将该字母的出现次数加一。最终,只需遍历整个数组,找到出现次数最多的小写字母和它的出现次数.
如有帮助给个采纳谢谢

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/186083
  • 除此之外, 这篇博客: 3.飞机机票的价格受季节旺季、淡季的影响,头等舱与经济舱的价格也不同机票的原价为5000,4~10月为旺季, 旺季:头等舱打9折,经济舱打8折;淡季:头等舱打5折,经济舱打4折。请编写根据出行的月份和中的 3.飞机机票的价格受季节旺季、淡季的影响,头等舱与经济舱的价格也不同机票的原价为5000,4~10月为旺季, 旺季:头等舱打9折,经济舱打8折;淡季:头等舱打5折,经济舱打4折。请编写根据出行的月份和选择的舱位输出实际的机票价格。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 由问题的要求,可选使用嵌套的if语句,比较容易实现首先把伪代码写出来,这样整个框架就出来了,再把真实的代码补全就可实现。

    代码:

    
     
    package Homework1203;
    import java.util.Scanner;
    //购买机票
    public class BuyAirTicket1 {
        public static void main(String[] args) {
            int months ;                            //定义变量月份
            int ticketPrice = 5000;                    //机票价格
            int seatNum ;                             //定义舱位
           
            double discount1 = 0.4;                    //打4折
            double discount2 = 0.5;                    //打5折
            double discount3 = 0.8;                    //打8折
            double discount4 = 0.9;                    //打9折
            double actualprice ;                    //实际的机票价格
           
            Scanner input = new Scanner(System.in);                                   //从控制台获取输入对象
            System.out.print("请输入出行的月份(1~12):");
            months = input.nextInt();                                                        //从控制台获取——相应的月份
            if(months>=1&&months<=12) {                                               //输入的月份正确
                System.out.println("请问您选择头等舱还是经济舱?选择头等舱请输入1,选择经济舱请输入2");
                seatNum = input.nextInt();                                                  //从控制台获取——相应舱位
                if(months>=4&&months<=10) {                                          //旺季
                    if(seatNum==1) {                                                          //seatNum==1为头等舱
                        //头等舱的票价=原价x折扣
                        actualprice = ticketPrice*discount4;
                        System.out.println("您的机票价格为:"+actualprice);        //输出实际票价
                    }
                    else if(seatNum==2) {                                                     //seatNum==2为经济舱
                        //经济舱的票价=原价x折扣
                        actualprice = ticketPrice*discount3;
                        System.out.println("您的机票价格为:"+actualprice);        //输出实际票价
                    }
                }
                else if((months>=1&&months<=3)||(months>=11&&months<=12)) {        //淡季,此处一定要注意‘&&’与‘||’
                    if(seatNum==1) {                                                          //seatNum==1为头等舱
                        //头等舱的票价=原价x折扣
                        actualprice = ticketPrice*discount2;
                        System.out.println("您的机票价格为:"+actualprice);        //输出实际票价
                    }
                    else if(seatNum==2) {                                                    //seatNum==2为经济舱
                        //经济舱的票价=原价x折扣
                        actualprice = ticketPrice*discount1;
                        System.out.println("您的机票价格为:"+actualprice);        //输出实际票价
                    }
                }
            }
            else {                                                                                    //输入的月份有误
                System.out.print("您输入的月份有误!");
            }
        }
    }
    /*
     * 飞机机票的价格受季节旺季、淡季的影响,头等舱与经济舱的价格也不同
     * 机票的原价为5000,4~10月为旺季,
     * 旺季:头等舱打9折,经济舱打8折
     * 淡季:头等舱打5折,经济舱打4折
     * 根据出行的月份和选择的舱位输出实际的机票价格
     */