【发布时间】:2020-06-28 16:37:11
【问题描述】:
所以它编译正常,但输出不是预期的。我认为问题在于 OR 运算符无法正常工作,或者它与 && 运算符冲突。但也许它写得不好或什么的。请告诉我。提前致谢。
代码如下:
if((len == 16) && secDigit == (51 | 52 | 53 | 54 | 55)
{
printf("MASTERCARD\n");
exit(0);
}
else if((len == 15) && secDigit == (34 | 37))
{
printf("AMEX\n");
exit(0);
}
else if((len == (16 | 13)) && firstDigit == 4)
{
printf("VISA\n");
exit(0);
}
else
{
printf("INVALID\n");
exit(0);
}
【问题讨论】:
-
16 | 13是29。你是说(len == 16 || len == 13)吗? -
除了上面指出的明显误解外,您的第一行代码末尾还缺少
)。 -
确实是@WeatherVane,欣赏它
-
我觉得你需要从C书入手,学习逻辑运算是如何工作的
-
是的@RobertoCaboni
标签: c if-statement cs50