我想用C程序解决这个查询

时间:2018-10-11 14:13:42

标签: c if-statement

有人可以指导我如何正确地将其放在if-else语句中。 考虑以下if语句,其中doesSignificantWorkmakesBreakthroughnobelPrizeCandidate都是布尔变量:

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

首先,编写一个与此等价的简单if语句。然后编写一个执行相同操作的赋值语句。

3 个答案:

答案 0 :(得分:3)

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

等同于

nobelPrizeCandidate = (doesSignificantWork && makesBreakthrough);

答案 1 :(得分:3)

您可以制作一个truth table。第一步是识别输入,并写下其值的所有组合。

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(&&)。

答案 2 :(得分:2)

一个更简单的if语句是:

if (doesSignificantWork && makesBreakthrough)
  nobelPrizeCandidate = true;
else
  nobelPrizeCandidate = false;

@Blaze的答案为您提供了最简单的单线。替代方法是

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