时间换算,用结构类型表示时间内容,时间以时、分、秒显示,输入时间,再输入秒数n(n<100),再输入秒数,n(n<100),以h:m:s的格式输出时间再过n秒后的时间值。程序填空 #include <stdio.h> void timecount(struct TIME *p ,int n); struct TIME { int h; int m; int s;}; void timecount(struct TIME *p ,int n) { /*空*/ } int main() { struct TIME time0; int n; scanf("%d:%d:%d",&time0.h,&time0.m,&time0.s); scanf("%d",&n); timecount(&time0,n); printf("after %d seconds the time is:%d:%d:%d\n",n,time0.h,time0.m,time0.s); return 0; }
时间: 2024-03-02 11:48:55 浏览: 74
(山东科技大学)PTA数据结构答案与解析
代码如下:
```c
#include <stdio.h>
struct TIME {
int h;
int m;
int s;
};
void timecount(struct TIME *p, int n) {
p->s += n; // 先加上秒数
// 处理进位
while (p->s >= 60) {
p->s -= 60;
p->m++;
}
while (p->m >= 60) {
p->m -= 60;
p->h++;
}
while (p->h >= 24) {
p->h -= 24;
}
}
int main() {
struct TIME time0;
int n;
scanf("%d:%d:%d", &time0.h, &time0.m, &time0.s);
scanf("%d", &n);
timecount(&time0, n);
printf("after %d seconds the time is:%02d:%02d:%02d\n", n, time0.h, time0.m, time0.s);
return 0;
}
```
程序的思路是先将秒数加上,然后用循环处理进位,最后输出结果。需要注意的是,输出时间的格式应该使用 `%02d`,表示输出的整数占两位,不足两位时在前面补 0。
阅读全文