我正在尝试使此代码像一组选项一样工作。我已经对其进行了测试,无论我为moduleChoice输入什么内容,它都会直接带我gradeTestMain。有人可以解释我在做什么错吗?
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."));
最佳答案
if (moduleChoice == 1,
gradeTestMain());
应该更改为
if (moduleChoice == 1)
gradeTestMain();
对于其他
if
也是如此。您需要将方括号括起来,否则就意味着
if (moduleChoice == 1, gradeTestMain());
意思是
if (moduleChoice == 1, gradeTestMain())
{
;
}
意思是。
评估
moduleChoice == 1
,丢弃结果,然后评估gradeTestMain()
。然后检查
gradeTestMain()
的返回值是true还是false。但是同样,由于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.");
投资一本书可能是一个好主意。
关于c - 我该如何工作? (C),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25820312/