输入一个字符串,统计其出现频率最高的字母以及对应的次数
来源:互联网 发布:双拼net域名行情 编辑:程序博客网 时间:2024/04/30 20:25
/*
描述
笨小熊的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!
这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小熊就认为这是个Lucky Word,这样的单词很可能就是正确的答案。
输入
第一行数据N(0<N<100)表示测试数据组数。
每组测试数据输入只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。
输出
每组测试数据输出共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;
第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0
*/
#include <stdio.h>#include <string.h>int main() { // insert code here... char str[98]; //长度小于100的字符串 printf("请输入一个字符串:"); scanf("%s",str); if (strcmp(str,"") == 0) { printf("No Answer!\n"); } char str1[100]; strcpy(str1, str); int i1 = 0; //ERT'\0' while(str[i1] != '\0') { i1++; } int n = i1; //str中元素的个数// printf("字母总数n = %d\n",n);// int n = (int)strlen(str); //元素的个数 for (int i = 0; i < n; i++) { for (int j = 0 ; j < n - i - 1; j++) { if(str[j] > str[j+1]){ char temp; //临时字符 temp = str[j]; str[j] = str[j+1]; str[j+1] = temp; } } } //对str的元素进行排序// printf("%s\n",str); //打印排序之后的str字符串 int i = 0; int j = 1; int a[52]; char save[52];//存储元素数组 memset(a,0,52); memset(save,0,52); //对数组中所有元素置零// printf("************\n");// for (int i = 0 ; i < 52; i++) {// printf("%d\n",a[i]);// }// printf("************\n"); //测试是否置零 /* 对输入字符串每个字母出现的次数进行统计, 同时记录该字母对应的次数 */ int k = 0; while(i <= 52){ while (str[i] == str[i+1]) { j++; //第i个元素出现的次数 i++; //第i个元素 } if (str[i] == '\0') { break; } save[k] = str[i]; a[k] = j; j = 1; k++; i++; } // 最终的k++就是元素字母的种类数!// printf("所输入字符串字母的种数是:%d\n",k);// for (int i = 0; i < k; i++) {// printf("%d,%c\n",a[i],save[i]);// } //对a[]排序 for (int i = 0; i < k; i++) { for (int j = 0 ; j < k - i - 1; j++) { if (a[j] < a[j+1]) { int tep = a[j]; a[j] = a[j+1]; a[j+1] = tep; char c = save[j]; save[j] = save[j+1]; save[j+1] = c; } } } int Max = a[0]; //字母出现的最大次数// char Max_char = save[0]; //出现次数最多的字母 int Min = a[k-1]; //字母出现的最小次数// char Min_char = save[k-1]; //出现次数最少的字母 // printf("*****************\n");// for (int i = 0; i < k; i++) {// printf("%d\n",a[i]);// } //// printf("出现次数最多的字母是:%c,其出现次数是:%d\n",Max_char,Max);// printf("出现次数最少的字母是:%c,其出现次数是:%d\n",Min_char,Min); int luckyNumber = Max - Min;// printf("******************\n");// printf("******************\n"); printf("输入的单词是:%s\n",str1); printf("luckynumber is %d\n",luckyNumber); return 0;}
尚待解决的问题:
如果输入的字符串有空格该如何处理?
例如:lucky word
阅读全文
0 0
- 输入一个字符串,统计其出现频率最高的字母以及对应的次数
- 输入字符串,统计字符串中出现频率次数最多的字符,并统计次数,以及每个字符字符出现的次数
- 用c语言编程 统计输入的一个字符串中每个字母出现的次数
- 统计字符串各字母出现的频率
- 统计一个字符串内所有字母出现的次数
- 统计一个字符串中每个字母出现的次数
- 统计一个字符串中字母出现的次数
- 48.找出字符串中出现频率最高的字母
- 统计字符串里面出现频率最高的字符
- 统计字符串中出现频率最高的字符
- 统计字符串中出现频率最高的字符
- 长为10000的字符串,由a-z及A-Z组成,统计出其中出现频率最高的字母
- 给出一个字母字符串,统计字符串中每个字母出现的次数
- 统计一个文本出现频率最高的…
- 统计一个字符串中英文字母的个数及各个字母出现的次数
- Linux 统计文档中各个字母出现的次数,显示各个字母出现的频率
- 一个字符串中字母出现的次数
- 找出一个字符串中出现频率最高的字符
- 故障检测、性能调优与Java类加载机制
- 同时修改某一个数据库中所有表的所有字段的编码格式(mysql)
- linux中进程的管理
- CentOS 安装VNCserver 并开启远程桌面
- 【Leetcode-Easy-20】 Valid Parentheses
- 输入一个字符串,统计其出现频率最高的字母以及对应的次数
- 值得收藏的知识
- Vision_MATH_高精度
- 前端之js插件-fullPage
- (转)做个男人,做个成熟的男人,做个有城府的男人
- 对新概念应当”不求甚解“
- Ionic CLI使用教程指南
- Date与String相互转化 (含倒推时间段)
- Swagger UI 中文乱码解决