【2018华科机试】统计英文

/*
从键盘输入一行英文句子,句子中只有英文单词和空格,每个单词之间由若干个空格隔开,英文单词由大小写字母组成,编程完成下列任务:

统计并输出此句子中英文字母的个数。
统计并输出此句子中单词的个数。
查找句子中出现次数最多的字母(不区分大小写)和次数,当出现最多的字符不止一个时,都能找到,并输出找到的所有字母及次数。(输出时大小写字母均可)
例如,输入句子:This Is An Pencil Case,则输出为:
字母个数:18
单词个数:5
最多的字母:i,s
出现的次数:3

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

int main()
{
    char line[100];
    gets(line);
    int i;
    int letternum=0,wordnum=0,ascii[128]= {0};
    for(i=0; i<strlen(line); i++)
    {
        if(line[i]!=' ')letternum++;
        if(line[i]!=' '&&line[i+1]==' ')wordnum++;//记得排除连续多个空格的情况
        ascii[line[i]]++;
    }
    if(line[strlen(line)-1]!=' ')wordnum++;//判断最后一个字符是否是空格,如果是的话字母数就不能加一
    printf("字母个数:%d\n",letternum);
    printf("单词个数:%d\n",wordnum);

    int max = 0;
    for(i = 65; i < 91; i++)
    {
        if(max < ascii[i] + ascii[i+32])
            max = ascii[i] + ascii[i+32];
    }
    printf("最多的字母:");
    int flag = 0;
    for(i = 65; i < 91; i++)
    {
        if(max == ascii[i] + ascii[i+32])
            if(flag)
                printf(",%c", i);
            else
            {
                printf("%c", i);
                flag = 1;
            }
    }
    printf("\n出现的次数:%d\n", max);


}

运行结果:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值