我不断收到一个未知错误,提示expected expression:

我不断收到一个未知错误,提示expected expression:,c,syntax-error,expression,cs50,C,Syntax Error,Expression,Cs50,上面显示的是我得到的错误。如果有人能指出我到底做错了什么。那太好了。下面,我将添加到目前为止编写的可读性代码 readability.c:28:9: error: expected expression else: #包括 #包括 #包括 #包括 int main(int argc,char*argv[]) { char*string=get_string(“输入字符串:\n”); int i=0; int char_count=0; int-alp=0; int字=0; int-se

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

readability.c:28:9: error: expected expression
    else:
#包括
#包括
#包括
#包括
int main(int argc,char*argv[])
{
char*string=get_string(“输入字符串:\n”);
int i=0;
int char_count=0;
int-alp=0;
int字=0;
int-sentance=0;
while(字符串[i]!='\0')
{

if((string[i]>='a'&&string[i]='a'&&string[i]您的if-else语句不匹配。 你的第一个if很好,后面跟着and else。 在这个else中,你有一个if语句,然后你有另一个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]!='\0')
    {
        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);
}

它不匹配我想你的最后一个else应该在第一个else中,与它里面的if绑定。或者我不知道你想要什么…也许你想要else if?

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

首先,在这些
if
语句中的每一个
if
语句中都可以使用
=
=
!至于错误本身,您的第一个
else
应该是
else if
(而不是
else{if…
)这对我来说似乎是个答案。在“句子”中没有“a”。从我的角度看,我有:if else if elseif@igortadic你看错了。第二个
if
在一个块内,并且与任何更高级别的
else
没有关联。因此你有
if{}else{}else{}
这是一个语法错误。它与C的语法规则不匹配,而且毫无意义。如果你想要一个
if
-
else
-
if
-
else
链,请去掉第一个
else
else之后的大括号。我想我把if-else和else-if搞混了。我开始学习python,如果我错了,请纠正我。我它应该是:if--elif-elif。在C中会是什么样子?正如你所说的,应该是else-if{}而不是elif
if {..}
else { 
    if {...}
}
else {...}