小编Mat*_*012的帖子

根据字长打印直方图(C)

这是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)

并试图将它(程序)分成几部分.这就是我想出的:

  1. 打印顶部边框
  2. 打印类别,打印X每个时间条件都是正确的,打印NEWLINE,REPEAT.
  3. 打印底部边框

但我想的越多,我认为它的工作方式就越少(因为它一次只能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分钟后回来查看)

c

15
推荐指数
1
解决办法
1万
查看次数

C程序,新行和制表符彼此相邻的问题

这是我的原始代码:

#include <stdio.h>

#define IN  1   // inside a word
#define OUT 0   // outside a word

// program to print input one word per line

int main(void)
{
  int c, state;

  state = OUT;
  while ((c = getchar()) != EOF) {
    if (c == ' ' || c == '\n' || c == '\t') {
      state = OUT;
      printf("\n");
    }
    else if (state == OUT) {
      state = IN;
    }
    if (state == IN) {
      putchar(c);
    }
  }
  return …
Run Code Online (Sandbox Code Playgroud)

c

3
推荐指数
1
解决办法
1542
查看次数

标签 统计

c ×2