C语言题目,从键盘输入一行文本,统计其中每个英文字母出现的频率

Description从键盘输入一行文本,统计其中每个英文字母出现的频率,并输出出现过的英文字母及其次数,未出现过的不需要显示。为了简化问题的复杂度,假设在统计过程中不区... Description
从键盘输入一行文本,统计其中每个英文字母出现的频率,并输出出现过的英文字母及其次数,未出现过的不需要显示。为了简化问题的复杂度,假设在统计过程中不区分字母的大小写,即'A'与'a'被认为是一种字母。
Input
先从键盘输入一行文本。以换行符结束。
Output
输出统计结果。
Sample Input:
Studing C Language
Sample Output:
‘A’:2
‘C’:1
‘D’:1
‘E’:1
‘G’:3
‘I’:1
‘L’:1
‘N’:2
‘S’:1
‘T’:1
‘U’:2
展开
 我来答
刺友互
高粉答主

2019-06-26 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:68.3万
展开全部

1、新建一个工程和.c文件 ,输入头文件和主函数。

2、定义 变量类型,输入数字。

3、用while语句判断数字是否在1到4范围内。

4、调用函数。

5、用一个for语句输出。

6、编译、运行 ,得到最后的结果。

dingchaoant
推荐于2017-11-25 · TA获得超过1110个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:102万
展开全部
#include <stdio.h>
int main(void)
{
int i; //i和j都是循环变量
char j;
char a; //保存输入的字符
int b[26]={0}; //存放26个字母的出现频率
while ((a = getchar()) != '\n') //输入字符直到遇到回车为止,while循环为核心算法
{
for (j='A';j<='Z';++j) //从'A'开始比较
{
if (a == j || a == j+('a'-'A'))
{
b[j-'A']++; //数组b[ ]的第一个元素b[0]存'A'的出现频率
} //第一个元素b[1]存'B'的出现频率,以此类推
}
}
for (i=0;i<26;++i)
{
if (b[i] == 0)
{
continue;
}
else
{
printf("'%c':%d\n",i+'A',b[i]); //打印时通过 i+'A' 打印字母,通过b[i]的值打印频率
}
}
printf("\n");
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
da29663411
2013-03-22 · 超过15用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:25.4万
展开全部
#include<stdio.h>
void main()
{
char c;int num[27];
for(int i=0;i++;i<27)
num[i]=0;
c=getchar();

while(c!='nl')
{
switch(c)
{
case 'a':case 'A':
num[1]++;

break;

case 'b':case 'B':
num[2]++;
break;
case 'c':case 'C':
num[3]++;
break;
case 'd':case 'D':
num[4]++;
break;
case 'E':case 'e':
num[5]++;
break;
case 'f':case 'F':
num[6]++;
break;
case 'g':case 'G':
num[7]++;
break;
case 'h':case 'H':
num[8]++;
break;
case 'i':case 'I':
num[9]++;
break;
case 'j':case 'J':
num[10]++;
break;
case 'k':case 'K':
num[11]++;
break;
case 'l':case 'L':
num[12]++;
break;
case 'm':case 'M':
num[13]++;
break;
case 'n':case 'N':
num[14]++;
break;
case 'o':case 'O':
num[15]++;
break;
case 'p':case 'P':
num[16]++;
break;
case 'q':case 'Q':
num[17]++;
break;
case 'r':case 'R':
num[18]++;
break;
case 's':case 'S':
num[19]++;
break;
case 't':case 'T':
num[20]++;
break;
case 'u':case 'U':
num[21]++;
break;
case 'v':case 'V':
num[22]++;
break;
case 'w':case 'W':
num[23]++;
break;
case 'x':case 'X':
num[24]++;
break;
case 'y':case 'Y':
num[25]++;
break;
case 'z':case 'Z':
num[26]++;
break;
default:
break;

}
c=getchar();
}
for(int i=0;i<27;i++)
{
if(num[i]!=0)
printf("%c:","%d/n:",i+64,num[i]);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式