我在做我的c作业……:(使用三项式算子(?) _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分钟
发布于 2018-05-09 16:44:34
试一试:
hour = (gap > 0) ? gap/100 : (2400 - gap)/100;
minute = (gap > 0) ? gap%100 : (2400 - gap)%100;发布于 2018-05-09 16:48:12
由于这两个条件表达式都计算相同的条件,所以在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;https://stackoverflow.com/questions/50258301
复制相似问题