错误:应为“;”表达式和表达式结果未使用后

Errors: expected ';' after expression and expression result unused

为什么我会收到 "expected ';' after expressionexpressions result unused 的错误?这是我的代码:

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

int main(void)
{
   printf("How tall do you want your pyramid to be?\n");
   int height = GetInt();

   if (height > 23 && height < 1)
   {
       printf("Please use a positive number no greater than 23:\n");
   }
   else (height > 0 && height <= 23)
   {
       printf("Thanks!\n");
   }
}

您收到此错误是因为您无法使用 else 进行条件检查。您可能想使用 else if

但是,您会注意到的一件事是这两个条件都是全局详尽的,因此您不需要 else if 检查条件。只需要 else 而不进行任何条件检查即可完成这项工作。


另外,根据您给出的条件检查,它永远不会为真。因为,height 不能同时大于 23 和小于 1。您需要的是 or || 检查而不是 and &&

因此,您的代码将变为

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

int main(void)
{
   printf("How tall do you want your pyramid to be?\n");
   int height = GetInt();

   if (height > 23 || height < 1)
   {
       printf("Please use a positive number no greater than 23:\n");
   }
   else
   {
       printf("Thanks!\n");
   }
}

没有

else (height > 0 && height <= 23)

else 表示其他一切,所以不能给else 条件。 使用 else if 代替 ^^