(急)求帮忙写一个C语言程序,大体就是计算一句话中各字母出现的次数,并输出一个数组

程序要求:1.使用C语言,不是C++2.输入一个指令,R代表读取一句话并将个字母出现字数保存到一数组内,P代表输出出现次数的数组,C代表清除以前读过句子的字母数,Q代表退... 程序要求:
1.使用C语言,不是C++
2.输入一个指令,R代表读取一句话并将个字母出现字数保存到一数组内,P代表输出出现次数的数组,C代表清除以前读过句子的字母数,Q代表退出程序
3.使用两个调用函数 void ReadText(int histo[], int *max)和
void DrawHist(int histo[], int max),第一个是读取句子,第二个是画出数组,histo[]是用来存放26个字母出现次数,出现次数用“|”表示,即出现一次多一个|(如图中所示),max是其中出现次数最多的字母的出现次数。
4.可以使用isalpha()和tolower()来计算出现次数和将大写字母变为小写字母。
5.不输入C指令再次输入R指令的话字母出现次数累加到原来基础上
6.不区分大小写,如果输入Hello World!,出现次数数组应是{0,0,0,1,1,0,0,1,0,0,0,3,0,0,2,0,0,1,0,0,0,0,1,0,0,0}.
测试结果应如下图

大致就是这个样子,实在没有头绪该怎么写,如果能写些注释就更好了,十分感谢
展开
 我来答
GarfieldGCat
2012-11-02 · TA获得超过500个赞
知道小有建树答主
回答量:445
采纳率:92%
帮助的人:306万
展开全部
读取计数清空我就不说了,我相信你能处理

说说画图,这里是这样的
一次画一条|

那么我们可以这样做,先找到26个字母里面最多的那个
然后
for(i= max; i>0; i--)
for(j=0; j<26; j++)

if( char_count[j] == i )
printf(" |");
else
printf(" ");
大概思路就是这样
更多追问追答
追问
如何输入一个不确定行列数的二维数组呢?比如这里我要建立一个A[max][26]的数组,但是max是不确定的,我在程序里这样写提示我是错误的,该如何输入呢?另外这个max是在我的读取函数里得到的,能直接套用到这个画数组的函数里么?
追答
max是根据你计算完毕每个字母有多少次得出的

这里的max是指出现最多的字母
可以一次循环得到
max = A[i]
for i 0-25
if A[i] > max
max = A[i];

读取函数得到的当然可以,有两种办法,一是用读取函数返回一个max
另外修改全局变量
还有一种就是修改main函数下的变量,用指针

我仔细看了下题,这里要求的是在读入时计算出max,因此是用指针修改main函数下的max实现的

另外这里不需要二维数组
草根英雄1
2012-11-02 · TA获得超过409个赞
知道小有建树答主
回答量:379
采纳率:0%
帮助的人:249万
展开全部
分为两个用例,分开实现,第一个是寻找文本或者是字符串流中某个字符出现的次数,并记录
第二个是显示,这个其实也不复杂,出现最多的那个,就是行数,列数可以根据最下面那一行算出,lz不会输出是吧,看看stdio.h中,有关于输出的功能,调查一下,做个demo最后整合到一起。
我不会写代码给你的,因为我也需要调查,设计整合优化代码然后发给你,我没那么多时间,但我可以给你一个思路。把复杂的系统分成简单小模块是设计的基础。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笃侠6A
2012-11-02 · TA获得超过3735个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3516万
展开全部
这个问题用低版本的编译器(比如TC3.0)容易解决,统计出结果以后可以用gotoxy函数定位输出每一个'|'。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友82cdce0
2012-11-02 · 超过17用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:37.3万
展开全部
今天一上班,看到有这个任务。。大致看了下题目,难到是不难,就逻辑比较多

第一步,设计好数据结构
第二步,读取输入的字符串,把字符串里的数据通过一定的计算方式,把读取到的信息存入你设计好的数据结构(当然,这时的数据结构应该有了你的所有字符的 C R P的数据了)
第三部,就是负责打印了,按固定格式把你的数据结构dump出来。

要上班,代码就不写了,LZ不喜欢这样的回答,就忽略我吧。。哈哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vvind2008
2012-11-02 · TA获得超过321个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:168万
展开全部
首先统计问题。逐个扫描字符串,看看是第几个字母,然后再数组相应位置累加。
二,求最值问题。扫描数组,找最大值。
三,格式化输出。有了数据,输出就简单了吧,加两个循环就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式