平均字长[C]

时间:2015-03-11 17:11:03

标签: 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;
}

2 个答案:

答案 0 :(得分:2)

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

同样的问题已经回答here.

答案 1 :(得分:1)

要进行比较,您必须使用==代替=。此时您将ch设置为32,因此返回值始终为true。