用c语言从键盘输入两个时刻(24小时制),输出两个时刻的间隔,间隔用“小时:分钟:秒”表示。 如:3点5分25秒应表示为--03:05:25. 输入 输入包括两行。 第一行为时刻1。 第二行为时刻2。 保证时刻2大于时刻1。
时间: 2024-10-26 14:03:00 浏览: 31
c代码-输入一个大写英文字母, 输出与其相邻的字母串(将字母A-Z看作是收尾相接的环状排列)。 输入: 大写英文字母 输出:该字母前面的字母,该字母,该字母后面的字母。(三字母间无间隔)
5星 · 资源好评率100%
在C语言中,我们可以使用`getchar()`函数从标准输入读取字符,并结合一些字符串处理函数计算两个时刻之间的差值。这里是一个简单的示例程序来实现这个功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 函数用于将字符串转换为时间戳(假设格式为"HH:mm:ss")
int string_to_timestamp(char *str) {
char hours[4], mins[3], secs[4];
sscanf(str, "%2s:%2s:%2s", hours, mins, secs);
return (atoi(hours) * 60 * 60 + atoi(mins) * 60 + atoi(secs));
}
// 函数计算两个时间戳的差值并返回以"小时:分钟:秒"格式表示
void calculate_interval(int time1, int time2) {
int diff_hours = (time2 - time1) / (60*60);
int diff_mins = ((time2 - time1) % (60*60)) / 60;
int diff_secs = (time2 - time1) % 60;
printf("%02d:", diff_hours); // 保留两位数,不足补零
if(diff_mins >= 10) printf("%02d:", diff_mins); // 同理保留两位数
else printf("0%02d:", diff_mins);
printf("%02d\n", diff_secs);
}
int main() {
char input1[10], input2[10];
while (scanf("%s %s", input1, input2) != EOF && strcmp(input2, "end") != 0) { // 输入结束标志"end"
int timestamp1 = string_to_timestamp(input1);
int timestamp2 = string_to_timestamp(input2);
// 确保时刻2大于时刻1
if (timestamp1 > timestamp2) {
int temp = timestamp1;
timestamp1 = timestamp2;
timestamp2 = temp;
}
calculate_interval(timestamp1, timestamp2);
}
return 0;
}
```
当你运行此程序时,它会提示用户依次输入两个时刻,直到输入"end"为止。注意,此程序假设输入的时间格式始终是"HH:mm:ss",如果不是,你可能需要增加错误检查和处理。
阅读全文