| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2871 人关注过本帖
标题:[答案]统计字母的使用频率.简易版
取消只看楼主 加入收藏
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
结帖率:100%
收藏
 问题点数:0 回复次数:4 
[答案]统计字母的使用频率.简易版

我写了一个简单的, 对付考试,作业应该够了.. 各位就不要再发帖问这题了..好好消化一下..

/////////////////////////////////////////
// 字母频率统计及显示 简易版
// By Nobi 2007-6-30
/////////////////////////////////////////
#include <iostream>
using namespace std;

int getratio(int * ratio, char * str); //统计
void display(int * ratio, char * str, int len); //显示, 可设置升序/降序

void displayratio(int * ratio, int len){
cout<<"字符串长度:"<<len<<endl;
cout<<"使用频率表:"<<endl;
for(int i=0;i<26;++i)
cout<<char('A'+i)<<":"<<ratio[i]<<endl;
}

void main(){
cout<<"输入:";
char str[201];
cin>>str;
int ratio[26]; //统计26个字母出现频率 & initiate
int len=getratio(ratio,str); //串长度(不含\0)
cout<<"已排序字符串: ";
display(ratio,str,len);
displayratio(ratio,len);
}

int getratio(int * ratio, char * str){
int len=0;
for(int i=0;i<26;++i)
ratio[i]=0; for(i=0;str[i]!=0;++i){
//判断是否字母
//大写
if(str[i]>='A'&&str[i]<='Z')
//yes
++ratio[(str[i]-'A')]; //指定字母频率表(出现次数)+1
//小写
if(str[i]>='a'&&str[i]<='z')
++ratio[(str[i]-'a')]; //同上
//后续操作
++len; //统计长度
}
return len;
}
void display(int * ratio,char * str, int len){
int tmp[26]; //临时, 存放已排序字母频率
for(int i=0;i<26;++i)
tmp[i]=0;
int si; //操作寄存器
for(i=26;i>0;--i){
si=0;
for(int j=0;j<i;++j){
//获取目前最大的频率
if(ratio[si]<ratio[j])
si=j;
}
if(ratio[si]!=0){
//得到当前最大频率ratio[si]
//显示该字母
for(j=0;j<len;++j){
if(str[j]>='A'&&str[j]<='Z'){
if(str[j]=='A'+si)
cout<<str[j];
}
if(str[j]>='a'&&str[j]<='z'){
if(str[j]=='a'+si)
cout<<str[j];
}
}
}
ratio[si]=0;
}
cout<<endl;
}

搜索更多相关主题的帖子: int 频率 字母 ratio void 
2007-06-30 21:02
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 

To 天空の城

只用了iostream库...用那么多库没意思..


女侠,约吗?
2007-07-01 21:09
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 

To mp3aaa

不用怀疑我, Visual C++ 6.0 sp6 + Windows Server 2003 运行通过


女侠,约吗?
2007-07-01 21:11
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
整那么多有的没的..
代码都简化没了人家学啥?.. 拿啥练手?..

女侠,约吗?
2007-07-02 20:23
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
呵呵, 使用map肯定完全超出了这题考试的范围, 不过对学习C++的考生来说是一个拓宽思路, 提高能力的好机会

女侠,约吗?
2007-07-04 12:42
快速回复:[答案]统计字母的使用频率.简易版
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019027 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved