用c语言编写 题目描述 编写函数,根据起始时间和结束时间,计算用时。 函数接口定义: double duration( int s_hour, int s_min, double s_sec, int e_hour, int e_min, double e_sec); 说明:参数 s_hour、s_min 和 s_sec 分别为开始时间的时、分和秒数,e_hour、e_min 和 e_sec 分别为结束时间的时、分和秒数,函数值为用时(秒数)。 注:为了便于计算,假设用时不足 1 天。 裁判测试程序样例: #include <stdio.h> double duration( int s_hour, int s_min, double s_sec, int e_hour, int e_min, double e_sec); int main() { int sh, sm, eh, em; double ss, es, t; scanf ("%d:%d:%lf", &sh, &sm, &ss); scanf ("%d:%d:%lf", &eh, &em, &es); t = duration (sh, sm, ss, eh, em, es); printf("%lf",t); } 输入样例 1: 8:25:45 8:26:0.2 输出样例 1: 15.20 输入样例 2: 11:57:30.4 11:56:40.75 输出样例 2: 86350.35
时间: 2024-02-25 12:52:08 浏览: 63
以下是用 C 语言编写的计算用时的函数实现:
```c
#include <stdio.h>
double duration(int s_hour, int s_min, double s_sec, int e_hour, int e_min, double e_sec) {
double start_time = s_hour * 3600 + s_min * 60 + s_sec;
double end_time = e_hour * 3600 + e_min * 60 + e_sec;
return end_time - start_time;
}
```
在这个函数中,我们首先将起始时间和结束时间转换为总秒数,然后计算它们之间的差值,即用时。注意,由于参数中的秒数是一个 double 类型,我们需要将小时和分钟转换为总秒数时也要将它们转换为 double 类型。
可以使用以下代码进行测试:
```c
int main() {
int sh, sm, eh, em;
double ss, es, t;
scanf("%d:%d:%lf", &sh, &sm, &ss);
scanf("%d:%d:%lf", &eh, &em, &es);
t = duration(sh, sm, ss, eh, em, es);
printf("%lf", t);
return 0;
}
```
在测试程序中,我们首先读入起始时间和结束时间,然后调用 duration 函数计算用时,并将结果输出。注意,输出结果时需要使用 %lf 格式控制符,因为用时是一个 double 类型的值。
阅读全文