这是K&R演习(1-13)......
"编写一个程序,在其输入中打印单词长度的直方图.可以很容易地绘制水平条形图的直方图;垂直方向更具挑战性."
该部分是关于数组的,说实话,我不确定我是否完全理解它.到目前为止,一切都很容易掌握,但事实并非如此.
无论如何我首先尝试用水平条做直方图.一旦我把它弄下来,我会尝试垂直,但是现在我甚至不确定从哪个版本开始.(我睡在上面,醒了,仍然无法得到它.)
我画了一个程序输出内容的例子:
----------------------------------------------------------------
001|XX
002|XXXX
003|X
004|XXXXXXXXXX
005|XXXXXXXXXXXXXXXXXXXXXXXXX
006|XXXX
007|X
008|
009|XXXXXXXXX
010|XXX
>10|XXXX
----------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
并试图将它(程序)分成几部分.这就是我想出的:
- 打印顶部边框
- 打印类别,打印X每个时间条件都是正确的,打印NEWLINE,REPEAT.
- 打印底部边框
但我想的越多,我认为它的工作方式就越少(因为它一次只能getchar()通过一个角色,而且无法重新将X放入正确的类别.)或者...... .
......我真的很困惑,我将如何解决这个问题.据我所知,我已经能够获得代码明智:
#include <stdio.h>
#define MAXWORDLENGTH 10
// print a histogram of the length of words in input. horizontal bar version
int main(void)
{
int c;
while ((c = getchar()) != EOF) {
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮助启发我吗?不一定是代码,可能只是伪代码,或者一些"智者的话",关于我需要做什么,想什么,或者其他什么.这只是路上真正的大石头,我想通过它:/.
(我会在30分钟后回来查看)
我喜欢伪代码!在那里有一些好的想法,但你仍然没有正确地订购你的程序.
正如你自己说的那样,你无法阅读文本,返回并在特定行中打印X. 如果我们确定无法完成,那么除了事先知道直方图的所有值之外别无选择.
因此,您应该认为您的程序有两个部分(并且您将在几乎所有编写的程序中进行这种划分):首先,将进行计算的部分; 然后是一个将以某种格式输出它们的部分(直方图).
这个提示应该让你开始!如果您需要进一步的帮助,请在下面评论