首先,我的程序可以运行,但是b3
表达式(一个boolean
)的功能不如我想要的那样。当我选择一列火车是DIESEL或ELECTRICAL时,不是给我值0(false),而是当某些火车是DIESEL或ELECTRICAL时给了我1(TRUE)值。仅当两列火车都是电气的或两列都是柴油的时才给出错误。当一列火车是电动的而另一列是柴油的时,它使我一直给我1(真)。我的代码更广泛,但是这些都是与我所解决的问题有关的部分。
typedef enum{ELECTRICAL, CARBON, SOLAR, GASOLINE, DIESEL, MAGNETIC} tPropulsion;
typedef enum{FALSE, TRUE} boolean;
int main()
{
tPropulsion propulsionType1, propulsionType2;
boolean b2, b3, b4;
printf("Insert type of propulsion of train1>> 0-ELECTRICAL, 1-CARBON, 2-SOLAR, 3 GASOLINE, 4-DIESEL, 5-MAGNETIC ");
scanf("%u", &propulsionType1);
printf("Insert type of propulsion of train2>> 0-ELECTRICAL, 1-CARBON, 2-SOLAR, 3 GASOLINE, 4-DIESEL, 5-MAGNETIC ");
scanf("%u", &propulsionType2);
b3 = propulsionType1 != DIESEL && propulsionType2 != ELECTRICAL &&
propulsionType1 != DIESEL && propulsionType2 != ELECTRICAL;
printf("Neither train 1 or train 2 are DIESEL or ELECTRICAL is (0-FLASE, 1-TRUE)>> %u", b3);
}
答案 0 :(得分:0)
首先:
#define TRUE (0==0)
#define FALSE !TRUE
然后澄清您的陈述,您想要什么?
“如果火车1或火车2是DIESEL或ELECTRICAL,则为TRUE,否则为FALSE”
b3 = ((propulsionType1 == DIESEL) || (propulsionType2 == ELECTRICAL)) ||
((propulsionType1 == DIESEL) || (propulsionType2 == ELECTRICAL));
然后查看propulsionType1和propulsionType2
b3 = ((propulsionType1 == DIESEL) || (propulsionType1 == ELECTRICAL)) ||
((propulsionType2 == DIESEL) || (propulsionType2 == ELECTRICAL));