c - 平均字长 [C]

标签 c

我看不出我的逻辑在代码中存在缺陷,出于某种原因,即使 ch 不等于 32,它也会向 i 加 1。

int main(void)
{
    int ch;
    float i, j;

    printf("Enter a sentence: ");

    for (i = 1, j = 0;;)
    {
        ch = getchar();

        if (ch == '\n' || ch == EOF)
            break;

        if (ch != 32)
            j++;

        if (ch = 32)
            i++;
    }

    printf("Average word length: %.2f", j/i);
    return 0;
}

最佳答案

if (ch = 32) 存在问题,因为您将 ch 设置为 32。您应该使用等于运算符 if (ch == 32)

类似的问题也已得到解答here.

关于c - 平均字长 [C],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28993029/

相关文章:

c - Discrete Wavelet Transform LeGal 5/3 with Lifting(负值,可视化,LH HL混淆)

c - 从用户输入中获取字符串值并将每个字母保存到数组中

c++ - 使用笔在透明窗口上绘图

将 char * 转换为大写段错误

c++ - 如何对部分可重用算法进行正确的设计/架构?

打印时出现 C 程序错误

objective-c - Objective-C 程序可以编译成 int 为 64 位吗?

c - 验证电子邮件域的更好方法?

c - 为什么在尝试将字符串映射到其标记时会出现段错误?

c - 如何通过输入重定向输入不同的数据类型?