我一直收到一个未知错误,说预期的表达:

I keep getting an unknown error saying expected expression:

readability.c:28:9: error: expected expression
    else:

上面显示的是我遇到的错误。如果有人会指出我到底做错了什么。那太好了。下面,我将添加到目前为止编写的可读性代码。

#include <stdio.h>
#include <cs50.h>
#include <math.h>
#include <string.h>


int main(int argc, char *argv[])
{
    char *string = get_string("Enter a string:\n");
    int i = 0;
    int char_count = 0;
    int alp = 0;
    int word = 0;
    int sentance = 0;
    while(string[i]!='[=11=]')
    {
        if((string[i]>='a' && string[i]<='z') || (string[i]>='A' && string[i]<='Z'))
        {
            alp++;
        }
        else
        {
            if ((string[i] = ' ') || (string[i] = '.') || (string[i] = '!') || (string[i] = '?') || (string[i] = ','))
            {
                word++;
            }
        }
        else
        {
            if ((string[i] = '.') || (string[i] = '!') || (string[i] = '?'))
            {
                sentance++;
            }
        }
        i++;
    }
    printf("%i\n", alp);
    printf("%i\n",word);
    printf("%i\n",sentance);
}

所以错误在第 28 行的某处。我假设我的“else”语句语法是错误的,但考虑到它与上面的行相同,我无法弄清楚哪里出了问题。在添加第 28 行之前代码工作正常

您的 if else 语句不匹配。 你的第一个 if 没问题,然后是 and else。 在 else 里面,你有一个 if 语句。之后你还有另一个!

像这样:

if {..}
else { 
    if {...}
}
else {...}

不匹配我想你的最后一个 else 应该在第一个 else 中,与里面的 if 相关联。或者我不知道你想要什么......也许你想要别的如果?

从语法上讲,只要不使用第三个 else,第二个 else 就是正确的,bcoz else 是 if...else 语句中的最后一个语句。 现在逻辑上你想要的可以通过删除所有其他内容及其相应的大括号来实现。