编写一个C语言程序:从键盘读入一行文本,统计每个英文字母出现的次数

作者&投稿:谯司 (若有异议请与网页底部的电邮联系)
C语言题目,从键盘输入一行文本,统计其中每个英文字母出现的频率~

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

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

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

4、调用函数。

5、用一个for语句输出。

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

给你说一个大概思路
把读出来的字符串逐个字母进行判断,记录当前判断字母为ch
i = 把字符转化为整型数(对应的ASCII:0—48,a—97,A—65)具体算法自己想想
然后letter[i]++
最后输出就行了

对于每个英文字母分别判断个数,并累计,最终输出即可。

一、算法:

1、循环读取字符,直到换行为止。对于每个字符,执行以下流程。

2、判断是否为英文字母,即小写和大写两种。

3、如果是英文字母,则统计个数。

输入部分,可以存为数组,也可以每输入一个字符计算一次。

二、参考代码:

#include <stdio.h>
int main()
{
    int c;
    int cnt[52]={0};
    while((c=getchar())!='
')//读取每个字符,直到遇到换行为止。
    {
        if(c>='A'&&c<='Z')//大写
            cnt[c-'A'] ++;//统计。
        else if(c>='a'&&c<='z')//小写
            cnt[c-'a'+26] ++;//统计。
    }
    for(c=0;c<26;c++)//输出大写字母统计结果。
        if(cnt[c]!=0) printf("%c:%d
", c+'A', cnt[c]);
    for(c=26;c<52;c++)//输出大写字母统计结果。
        if(cnt[c]!=0) printf("%c:%d
", c-26+'a', cnt[c]);
    return 0;
}


#include <stdio.h>
int main(void)
{int i;
char j;
char a;
int b[26]={0};
while ((a = getchar()) != '\n')
{
for (j='A';j<='Z';++j)
{
if (a == j || a == j+('a'-'A'))
{
b[j-'A']++;
}
}
}
for (i=0;i<26;++i)
{
if (b[i] == 0)
{
continue;
}
else
{
printf("'%c':%d\n",i+'A',b[i]);
}
}
printf("\n");
}

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

#define MAX 100

int main()
{
char str[MAX]; // 输入的字符串,最大长度是MAX-1,因为有一个字符串结束符
int i = 0, count[52] = { 0 }; // count 数组用来存储各个字母出现的次数
scanf("%s", str);
while(str[i] != '\0') {
if (str[i] >= 'a' && str[i] <= 'z') { // 统计小写字母
count[str[i] - 97 + 26]++;
}
if (str[i] >= 'A' && str[i] <= 'Z') { // 统计大写字母
count[str[i] - 65]++;
}
i++;
}
for (i = 0; i < 26; i++) { // 输出大写字母信息
if (count[i] != 0)
printf("%c\t%d\n", i + 65, count[i]); // 只输出不为零的数据
}
for (i = 26; i < 52; i++) { // 输出小写字母信息
if (count[i] != 0)
printf("%c\t%d\n", i + 97 - 26, count[i]);
}
return 0;
}

C语言:请编写一个程序,从键盘读入两个整数a和n,计算并输出a+aa+aaa+...
答:void main(){int i,a,n,k=1,out;printf("请输入a与n:");scanf("%d %d",&a,&n);for(i=0;i<n+1;i++){ k=k*10;} out=a*k/81-10*a/81-a*n/9;printf("the result is:%d\n",out );}

编写一个程序读取输入,读到#字符停止(c语言)?
答:for(int j=i;j

C语言+从键盘输入一个英文单词,实现在指定位置删除英文字母的编程...
答:```c include <stdio.h> include <string.h> int main() { char str[100];int n, i, len;printf("请输入一个英文字符串:");fgets(str, sizeof(str), stdin);printf("请输入要删除的第几个I字符:");scanf("%d", &n);len = strlen(str);for (i = n - 1; i < len - 1...

c语言编写程序,从键盘输入一个整数,当该数小于5时,输出读数本身_百度...
答:include <stdio.h>int main(int argc, char *argv[]){ int a = 0; scanf("%d", &a); if (a < 5) { printf("%d\n", a); } return 0;}

怎么用c语言写一个 程序。实现从键盘输入字符并写入一个文件。
答:);//打开输出文件 if (fp2==NULL) {//若打开文件失败则退出 puts("不能打开文件!"); rturn 0; } c=getchar();//从键盘读取一个字符 fputc(c,fp2);//向输出文件写入一个字符 fclose(fp2);//关闭输出文件,相当于保存 return 0;} ...

用C语言编写读入并读取一个文件,按照下面的要求编写程序
答:int main(){ FILE *fp,*ok;char str1[80],str2[80];if((fp=fopen("d:\\file.txt","r+"))==NULL)//打开d盘下名为file的文本文件;{ puts("file文件打开失败!");exit(0);} else puts("file文件打开成功");if((ok=fopen("d:\\file1.txt","r"))==NULL)//打开d盘下名为...

C语言怎么写!!编写一个程序,读入5个整数,然后确定并显示这组数种的最...
答:int array[5];// 输入整数 void input(){ int i;printf("Please input 5 number:\n");for(i=0;i<5;i++){ scanf("%d",&array[i]);//每输入完一个数据,请回车。} printf("Thank you ,input is end!\n");} // 显示函数 void display(){ int j;printf("the number you ...

C语言怎么编写一个程序:每次读入一个正三位数,然后输出逆序的数字...
答:= EOF) {int gewei = n%10;//n对10取模,意思就是n除以10的余数,那肯定就是个位上的数字n = n/10;//然后n除以10,按照整型int运算规则,舍弃了小数部分,所以原来的三位数变成两位数int shiwei = n%10;n = n/10;int baiwei = n;printf("%d%d%d\n",gewei,shiwei,baiwei);}return ...

编一C语言程序。通过键盘输入2个浮点型数,输出其中的最大值
答:{ float a,b;printf("enter two number:\n"); //输入两个数 scanf("%f %f",&a,&b); //把输入两个数分别赋给a b if(a>b) printf("%.0f",a); //判断谁大就输出谁 else printf("%.0f",b); //.0是想要小数点后不输出 } ...

c语言编程,从键盘任意按下一个键程序能识别并输出按键种类
答:include<conio.h> void main() { char c;while ( 1 ) { c=getch();if ( c==27 ) { printf("Esc键退出。\n"); break; } else if ( c>='a' && c<='z' ) printf("小写字母\n");else if ( c>='A' && c<='Z' ) printf("大写字母\n");else if ( c>='0' && ...