用字符数计算单词

问题描述

大家好,我目前正在阅读“C 编程语言”,当我在做其中一项练习时,我无法解决其中一项。问题编号是 1-13。它说

编写一个程序来打印输入中单词长度的直方图。这很容易,所以用水平条绘制直方图;垂直方向更具挑战性

所以我为问题的第一部分编写了这段代码,计数:

#include<stdio.h>

int main(void)
{
    char c;
    int arr[100];
    while((c = getchar()) != EOF)
    {
        int i = 0;
        while(c != ' ' || c != '\t' || c != '\n')
        {
            i++;
            c = getchar();
        }
        arr[i]++;
    }
}

但我无法让它工作,它总是在循环中停留在几秒钟内。这个:

while(c != ' ' || c != '\t' || c != '\n')
{
    i++;
    c = getchar();
}

你们知道为什么吗?我已经盯着这段代码看了 30 分钟,之前的练习中也有类似的代码,但我无法发布它们的代码,因为我删除了它们。如有造成不便,敬请谅解。

我也查看了 Print a Histogram based on word lengths (C),但我仍然不知道为什么我的代码不起作用。

我用 gcc main.c 编译它并用 cat main.c | ./a.out 运行它

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)