我没有看到我的逻辑在代码中存在缺陷,因为某些原因,即使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;
}
答案 0 :(得分:2)
if (ch = 32)
是问题,因为您将ch设置为32.您应该使用等于运算符if (ch == 32)
同样的问题已经回答here.
答案 1 :(得分:1)
要进行比较,您必须使用==
代替=
。此时您将ch
设置为32,因此返回值始终为true。