左键需要作为赋值的左操作数...?

  • 本文关键字:操作数 赋值 c
  • 更新时间 :
  • 英文 :


我正在做我的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;

最新更新