我不断收到一个未知错误,提示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 {...}