2016-06-29 54 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

相關問題