2014-09-13 88 views
-6

我想讓這段代碼像一組選項一樣工作。我已經測試過了,無論我爲moduleChoice添加了什麼內容,都需要我直接進入GradeTestMain。有人能解釋我做錯了什麼嗎?我該如何做這項工作? (C)

int main (void) 
{ 
    int moduleChoice=5; 

    printf ("Please choose which module you would like to use.\n"); 
    printf ("press 1 for GradeTest version 1.1\n"); 
    printf ("press 0 to exit\n"); 
    scanf_s ("%d", &moduleChoice); 

    if (moduleChoice == 1, 
     gradeTestMain()); 
    if (moduleChoice == 0, 
     printf ("Thank you for using GradeTest version 1.1! Have a great day!")); 
    if (moduleChoice /= 1,0, 
     printf ("That is not a valid choice. Please try again.")); 
+0

記得要測試'scanf_s()'是否成功!但是,正如我看到的答案所診斷的那樣,代碼中存在的問題更多。 – 2014-09-13 06:10:24

+3

這些是你在那裏有創意的一些陳述!它們在語法上不是非法的,但它們確實在語義上不正確。你真的認爲'moduleChoice/= 1,0'意味着moduleChoice不是1而不是0?我建議你閱讀一本C編程書或教程,不要只是猜測語法,或者隨時去修改。 – 2014-09-13 06:25:19

回答

3
if (moduleChoice == 1, 
    gradeTestMain()); 

應改爲

if (moduleChoice == 1) 
    gradeTestMain(); 

同樣,對於其他if秒。

您需要關閉托架 - 否則就意味着

if (moduleChoice == 1, gradeTestMain()); 

這意味着

if (moduleChoice == 1, gradeTestMain()) 
{ 
    ; 
} 

意思。

評估moduleChoice == 1,扔掉結果,然後評估gradeTestMain()。 然後檢查返回值gradeTestMain()是否爲真或假。但同樣,因爲if內部沒有任何內容,無論gradeTestMain是否返回true或false,結果都是一樣的。

另一件事是,

if (moduleChoice /= 1,0, 

沒有做什麼,你認爲它。將其更改爲else。改變以往ifelse if 所以你需要

if (moduleChoice == 1) 
    gradeTestMain(); 
else if (moduleChoice == 0) 
    printf ("Thank you for using GradeTest version 1.1! Have a great day!"); 
else 
    printf ("That is not a valid choice. Please try again."); 

這可能是投資於一本書是個好主意。

+0

大聲笑。每個'printf'之後你都有兩個'))'就像OP一樣! – 2014-09-13 09:42:49

2
int main (void) 
{ 
    int moduleChoice=5; 

    printf ("Please choose which module you would like to use.\n"); 
    printf ("press 1 for GradeTest version 1.1\n"); 
    printf ("press 0 to exit\n"); 
    scanf ("%d", &moduleChoice); 

    if (moduleChoice == 1) 
     gradeTestMain(); 
    else if (moduleChoice == 0) 
     printf ("Thank you for using GradeTest version 1.1! Have a great day!"); 
    else 
     printf ("That is not a valid choice. Please try again."); 

這項工作用C