C语言计算旅程时间,输入time1和time2(有效范围为0000到2359,不考虑出发时间晚于到达时间的情况),如: 请输入time1,time2:7:12 14:11(7:12出发,14:11到) 旅程时间为6小时59分钟
时间: 2024-09-25 11:03:09 浏览: 73
C语言库函数使用大全_C语言_
在C语言中,我们可以创建一个简单的程序来计算两个时间之间的旅行时间。首先,我们需要将用户输入的时间字符串转换成小时和分钟的形式。假设我们已经有了一个函数用于处理这种转换,并考虑到输入验证。下面是基本的步骤:
1. 定义结构体`Time`表示小时和分钟,包含两个整数成员:
```c
struct Time {
int hours;
int minutes;
};
```
2. 创建一个函数`convertToTime`,用于解析并存储用户输入的时间:
```c
void convertToTime(char *input, struct Time *time) {
char *p = input + strlen(input) - 2; // 避免直接取空格,从右往左找
time->hours = atoi(p); // 将小时部分转换为int
p--;
time->minutes = atoi(p);
}
```
3. 主函数中获取用户输入,然后计算旅行时间:
```c
int main() {
struct Time time1, time2;
printf("请输入time1(出发时间):");
scanf("%[0-9]%*[^\n]%*c", &time1.hours);
scanf("%d:%d", &time1.minutes);
printf("请输入time2(到达时间):");
scanf("%[0-9]%*[^\n]%*c", &time2.hours);
scanf("%d:%d", &time2.minutes);
if (time1.hours > time2.hours || (time1.hours == time2.hours && time1.minutes >= time2.minutes)) {
printf("错误:出发时间晚于到达时间\n");
return 1;
}
struct Time diff = {time2.hours - time1.hours, time2.minutes - time1.minutes}; // 差值时间
if (diff.minutes < 0) { // 超过一小时的部分需要调整
diff.hours--;
diff.minutes += 60;
}
printf("旅程时间为:%d小时%02d分钟\n", diff.hours, diff.minutes);
return 0;
}
```
在这个示例中,如果出发时间晚于到达时间,我们会输出错误信息并退出程序。
阅读全文