我正在做我的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分钟
试试:
hour = (gap > 0) ? gap/100 : (2400 - gap)/100;
minute = (gap > 0) ? gap%100 : (2400 - gap)%100;
由于两个条件表达式的计算条件相同,因此在if
语句中组合赋值会更干净:
if (gap > 0) {
hour = gap/100;
minute = gap%100;
} else {
hour = (2400 - gap)/100;
minute = (2400 - gap)%100;
}
您可以通过添加新变量来进一步简化此操作:
int numerator = gap > 0 ? gap : 2400-gap;
hour = numerator/100;
minute = numerator%100;