#include <stdio.h> #pragma warning(disable:4996) int main() { int hour1, minute1; int hour2, minute2; int sum1,sum2,cha,hour,minute; printf("请输入时间1:"); scanf("%d:%d",hour1, minute1); printf("请输入时间2:"); scanf("%d:%d", hour2, minute2); sum1 = hour1 * 60 + minute1; sum2 = hour2 * 60 + minute2; if (sum1 > sum2) { cha = sum1 - sum2; hour = cha / 60; minute = cha % 60; } else (sum2 > sum1) { cha = sum2 - sum1; hour = cha / 60; minute = cha % 60; } printf("时间差为%d:%d",hour, minute); return; }
时间: 2024-04-15 14:28:52 浏览: 106
您好!您的代码有一些错误。首先,在使用 `scanf` 函数读取变量时,需要使用变量的地址,因此应该使用 `&` 运算符。其次,在 `else` 语句后面的条件表达式应该使用 `else if`,而不是只使用 `else`。最后,在 `printf` 函数中,应该使用 `%02d` 来打印两位数的小时和分钟,以保证输出的格式正确。下面是修改后的代码:
```c
#include <stdio.h>
#pragma warning(disable:4996)
int main() {
int hour1, minute1;
int hour2, minute2;
int sum1, sum2, cha, hour, minute;
printf("请输入时间1:");
scanf("%d:%d", &hour1, &minute1);
printf("请输入时间2:");
scanf("%d:%d", &hour2, &minute2);
sum1 = hour1 * 60 + minute1;
sum2 = hour2 * 60 + minute2;
if (sum1 > sum2) {
cha = sum1 - sum2;
hour = cha / 60;
minute = cha % 60;
}
else if (sum2 > sum1) {
cha = sum2 - sum1;
hour = cha / 60;
minute = cha % 60;
}
else {
hour = 0;
minute = 0;
}
printf("时间差为%02d:%02d", hour, minute);
return 0;
}
```
请注意,我还添加了一个 `else` 语句来处理时间相等的情况,并将小时和分钟初始化为 0。此外,添加了 `return 0;` 来表示程序正常结束。
阅读全文