【发布时间】:2018-10-19 20:42:23
【问题描述】:
我正在做我的 c 作业..... :( 使用三项式运算符(?) _oo?oo : oo
#include <stdio.h>
int main()
{
int time1, time2, gap;
int hour, minute;
setvbuf(stdout, NULL, _IONBF, 0);
setvbuf(stdout, NULL, _IONBF, 0);
printf("Enter first time: \n");
scanf("%d", &time1);
printf("Enter second time: \n");
scanf("%d", &time2);
gap = time2 - time1;
gap > 0 ? hour = gap/100 : hour = (2400 - gap)/100;
gap > 0 ? minute = gap%100 : minute = (2400 - gap)%100;
print("The gap of these times: %d hours, %d minutes", hour, minute);
}
差距 > 0 ?间隙/100 = 小时:(2400 - 间隙)/100 = 小时;
差距 > 0 ?分钟 = 间隙%100 : 分钟 = (2400 - 间隙)%100;
这两句话是错误的(左操作数需要左值)
我想要的结果
第一次输入: 1925
第二次输入: 第2358章
这些时间的差距:4小时33分钟
或
第一次输入: 1540
第二次输入: 1630
这些时间的差距:0小时50分钟
或
第一次输入: 0730
第二次输入: 0720
这些时间的差距:23小时50分钟
【问题讨论】:
-
不叫三项式算子。这是Ternary Operator
-
@abelenky 也称为“条件运算符”。人们称它为“三元运算符”只是因为它恰好是唯一的三元运算符(带 3 个参数)。
-
?:运算符不是控制结构,不应不用于模拟if语句。这不是它的目的。 abelenky 的回答显示了正确的用法。
标签: c