2014-09-13 4 views
-6

Я пытаюсь заставить этот код работать как набор параметров. Я тестировал его и независимо от того, что я вставляю в moduleChoice, он сразу меняет на классTestMain. Может кто-нибудь объяснить, что я делаю неправильно?Как я могу сделать эту работу? (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()' был успешным! Но в коде есть больше проблем, чем в ответах, которые я вижу. –

+3

Это некоторые творческие заявления, которые у вас там есть! Они не являются синтаксически незаконными, но они, несомненно, не являются семантически правильными. Вы действительно думаете, что 'moduleChoice/= 1,0' означает moduleChoice не 1, а не 0? Я предлагаю вам прочитать C-книгу или учебник по программированию, а не просто догадываться о синтаксисе или составлять его по ходу дела. –

ответ

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

должен быть изменен на

if (moduleChoice == 1) 
    gradeTestMain(); 

Аналогично для других if с.

Вы должны закрыть скобки - в противном случае это означает, что

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

что означает

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

что означает.

оценить moduleChoice == 1, отбросить результат, затем evalutate gradeTestMain(). Затем проверьте, является ли возвращаемое значение gradeTestMain() истинным или ложным. Но опять же, потому что внутри if ничего нет, независимо от того, возвращает ли он gradeTestMain true или false, результат будет таким же.

Другое дело, что

if (moduleChoice /= 1,0, 

не делать то, что вы думаете, что он делает. Измените его на else. Изменение предыдущего if к else 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

Lol. У вас есть два '))' после каждого 'printf', как у OP! –

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

Смежные вопросы