我想用c程序解决这个问题

我想用c程序解决这个问题,c,if-statement,C,If Statement,有人能指导我如何在if-else语句中正确地表达这一点吗。 考虑下面的if语句,其中 DoEngEngimigWorks, Max突破,和 NBELPRISZECANDATED> /CARD>都是布尔变量: if (doesSignificantWork) { if (makesBreakthrough) nobelPrizeCandidate = true; else nobelPrizeCandidate = false; } else if

有人能指导我如何在if-else语句中正确地表达这一点吗。 考虑下面的if语句,其中<代码> DoEngEngimigWorks,<代码> Max突破,和<代码> NBELPRISZECANDATED> /CARD>都是布尔变量:

if (doesSignificantWork) {
    if (makesBreakthrough)
        nobelPrizeCandidate = true;
    else
        nobelPrizeCandidate = false;
}
else if (!doesSignificantWork)
    nobelPrizeCandidate = false;
首先,编写一个简单的if语句,该语句与此语句等效。然后编写一个赋值语句,执行相同的操作

if (doesSignificantWork) {
    if (makesBreakthrough)
        nobelPrizeCandidate = true;
    else
        nobelPrizeCandidate = false;
}
else if (!doesSignificantWork)
    nobelPrizeCandidate = false
相当于

nobelPrizeCandidate = (doesSignificantWork && makesBreakthrough);
你可以做出一个决定。第一步是识别输入,并记下其值的所有组合

Input   Output
d   m   n
0   0   ?
0   1   ?
1   0   ?
1   1   ?
然后填入正确的输出值

Input   Output
d   m   n
0   0   0
0   1   0
1   0   0
1   1   1

现在您应该看到输出函数对应于逻辑AND(
&&&
)。

如果
语句为:

if (doesSignificantWork && makesBreakthrough)
  nobelPrizeCandidate = true;
else
  nobelPrizeCandidate = false;
@Blaze的回答给了你最简单的一句话。另一种选择是

nobelPrizeCandidate = (doesSignificantWork && makesBreakthrough) ? true : false;