计算字母c语言,c语言计算字母使用频率

2-810-jpg_6-1080-0-0-1080.jpg

“统计字母的频率”的实验报告I.问题描述: 为了计算英语字母的使用频率,请输入一串不包含空格且长度不能超过200个字符的英语字母. 计算26个英文字母的使用频率,不区分大小写. 最后,根据使用频率从大到小输出字母(小写字母)和使用频率(出现次数). 其次,程序设计的基本思想,原理和算法: 定义一个将大写字母转换为小写字母的函数: char字母(char y)程序代码: 定义三个数组a [200],b [26],c [26]并将c [26]的初始值分配为0,以定义变量xc语言用什么定义字母,i,j,k. 输入英文字符串,然后将大写字母重写为小写字母,以计算每个字母的数量. 在数组c [26]中,26每个字母都分配给b [26]. 比较字母数,并将字母数排列在最前面. 根据频率输出字母和频率. 3.源程序和注释: #include“ stdio.h” #include“ windows.h” void main(){字符字母(char y); //声明字母函数char a [200],b [26]; // a代表输入字母c语言用什么定义字母,b代表26个字母int c [26] = {0}; // c表示字母出现char x的次数; int i,j,k; printf(“请输入不带空格的英文字符串: \ n”); scanf(“%s”,&a); //输入字符;得到(a),可以有空格(i = 0; i <200; i ++)//将大写字母更改为小写字母a [i] =字母(a [i]); for(j = 0,x ='a'; j <26; j ++,x ++)//计算(i [0; i <200; i ++)的每个字母的数目i] == x)c [j] +; for(k = 0; k <26; k ++)//将26个字母分配给bb [k] ='a'+ k; for(i = 0; i <25; i ++)//比较字母数字大小,(j = 25; j> i; j--)如果(c [j]> c [ j-1]){k = c [j-1]; c [j-1] = c [j]; c [j] = k; x = b [j-1]; b [j-1] = b [j]; b [j] = x;}系统(“ cls”); printf(“以下是输出结果: \ n”); for(k = 0; k <26; k ++)//根据频率大小printf(“字母%c使用的次数为: %d \ n”,b [k],输出字母和频率c [k]); system(“ pause”);} char字母(char y)//定义一个将大写字母转换为小写字母的函数{if(y> ='A'&& y <='Z')y = y + 32; return(y);}四,跑输结果: 五,调试和分析实习工作相对容易,主要是将大写字母转换为小写字母并进行排序. 6.实验总结1.这是实习的第一步. 自从我刚刚度过暑假以来,我已经忘记了C语言. 一开始,我很沮丧,犯了很多错误. 2.这种编程使我复习了C语言的许多知识点.

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-223883-1.html

#include #include struct four { double a; struct four *next; //定义结构体,作为链表的节点. }; void main() { double sum(void); //函数声明. 该函数返回等式的计算结果. 有优先级的运算符号在函数内部先进行计算。 double sum1; printf("请输入等式,以 '=' 结束, 例如“ 2*2*3-2/2= ” 结果将自动保留六位有效数字\n"); sum1=sum(); printf("该等式的结果为:\t%f\n\n",sum1); } double sum(void) { struct four *head,*pnew,*ptail,*p,*q; //结构体成员. char ah; double s=0,last; //last作为 pnew->a 的前一个数值. int j=1; q=(struct four *)malloc(sizeof(struct four)); scanf("%lf%c",&q->a,&ah); last=q->a; while(j==1 && ah!='=') //头节点的建立. { switch(ah) //对运算符号的优先级进行选择,优先级高的先进行计算. { case '+': j=0; continue; break; case '-': j=0; continue; break; case '*': q=(struct four *)malloc(sizeof(struct four)); scanf("%lf",&q->a); q->a=last*q->a; break; case '/': q=(struct four *)malloc(sizeof(struct four)); scanf("%lf",&q->a); q->a=last/q->a; break; default: printf("Error!\n"); //当运算符号出错时的处理. exit(0); } last=q->a; scanf("%c",&ah); } pnew=(struct four *)malloc(sizeof(struct four)); pnew->a=q->a; //将头节点的信息传递给 head 和 ptail. head=ptail=pnew; while(ah!='=') //接下来节点的建立. { pnew=(struct four *)malloc(sizeof(struct four)); scanf("%lf",&pnew->a); switch(ah) { case '*': pnew->a=last*pnew->a; break; case '/': pnew->a=last/pnew->a; break; case '+': break; case '-': pnew->a=-pnew->a;break; default: printf("Error!\n"); //当运算符号出错时的处理. exit(0); } scanf("%c",&ah); if(ah=='-' || ah=='+'|| ah=='=') //将值进行传递 ptail->next=pnew. { ptail->next=pnew; ptail=pnew; } last=pnew->a; } ptail->next=NULL; p=head; while(p!=NULL) //各个节点数值相加的结果,有优先级符号的已经先计算了. { s=s+(p->a); p=p->next; } return s; //返回运算结果. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值