2016-06-29 56 views
-1

我是C语言的新手,想问如何解决第15行上的所述错误:错误:'else'之前的预期表达式。如何修复第15行:错误:在'else'之前的预期表达式

谢谢!

#include<stdio.h> 

int n; 

main() 
{ 
    printf("Enter your age for qualification:"); 
    scanf("%d", &n); 

    if (n >= 0 && n <= 100); 
    { 
     if (n <= 0); 
     { 
      printf("you're still in your mother's womb!"); 
     } 
     else 
     { 
      (n >= 1 && n <= 17); 
      printf("you're too young! you're not qualified!"); 
     } 
     if (n >= 18 && n <= 100) { 
      printf("you're qualified to vote"); 
     } else { 
      (n >= 121); 
      printf("that's impossible! you're already dead!"); 
     } 
    } 

    return 0; 
} 
+2

'如果(N <= 0);'<==失去分号。我不知道你希望的是什么(n> = 1 && n <= 17);'正在完成。 [也许是关于C语言的一本好书](https://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list?s=1|5.9428)可能会有帮助。 – WhozCraig

+0

谢谢你的建议! (n> = 1 && n <= 17);我试图做一个年龄门代码(投票资格) (n> = 1 && n <= 17);当有人输入年龄1-17时显示消息(“你太年轻了!你没有资格!”)。 除非我编码它错了,但可能。 谢谢! :) – NeoArcadia

+0

请记住,'分号'(';')也可以被解释为_empty语句_(如果'n'小于或等于'0',很好,我们完成了条件检查),所以你的'else'不存在它所依赖的'if'。没有'if'的'else'在有效的C语句中不存在。 ( - : – user3078414

回答

1

当你这样做时,

if(n<=0); 

你有一个if语句不什么。然后else是脱离上下文的流浪关键字。

if语句的格式是

if (condition) statement 

if (condition) statement else statement 

注意这里是条件后没有分号,而不是它的statement一部分。

在你的情况下,if(n<=0);最后的分号是statement,这是一个空的语句。

+0

它工作!我删除了分号,谢谢你的回答。 因此,if语句应该总是没有分号吗? – NeoArcadia

+0

@NeoArcadia没有条件号后 –

+0

好的,我会保留这个介意,谢谢你,先生!:) – NeoArcadia

0

要清除出来的东西更多一些,你if语句会是这个样子

if(n<=0) 
    ; 

这是一个if与后一个空行,因此没有得到执行。

0
#include<stdio.h> 

    int n; 
    main() 
    { 
     printf("Enter your age for qualification:"); 
     scanf("%d",&n); 

     if (n>=0 && n<=100) 
     { 
     if (n<=0) 
     { 
      printf("you're still in your mother's womb!"); 
     } 
     else 
     { 
      /*(n>=1 && n<=17);*/ 
      printf("you're too young! you're not qualified!"); 
     } 
     if(n>=18 && n<=100) 
     { 
      printf("you're qualified to vote"); 
     } 
     else 
     { 
      /*(n>=121);*/ 
      printf("that's impossible! you're already dead!"); 
     } 
     } 

     return 0; 
    } 

什么您的代码应看起来像,例如

+0

问题,/ * * /是什么意思?谢谢! :) – NeoArcadia

+0

它用于在代码中添加注释。它不会被编译和执行。/* * /或像// – Destrif

+0

这样开始行似乎更有可能他们希望它成为一个else条件,然后是一个什么也不做的语句。 – TZHX

相关问题