首先,我的程序可以运行,但是b3
表达式 (a 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);
}