鱼C论坛

 找回密码
 立即注册
查看: 2243|回复: 2

时间换算问题

[复制链接]
发表于 2022-4-23 10:10:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
输出计算时不对,这怎么搞啊?
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int i,h,m,s,n_s,t,repeat;
  5.         int nh,nm,ns;
  6.         int h_1,m_1,s_1;
  7.         scanf("%d",&repeat);
  8.         for(i=1;i<=repeat;i++)
  9.         {
  10.                 for(i=1;i<=repeat;i++)
  11.                 {
  12.                         scanf("%d:%d:%d\n",&h,&m,&s);
  13.                         scanf("%d",&n_s);
  14.                 }
  15.                 for(i=1;i<=repeat;i++)
  16.                 {
  17.                         if(n_s<=60)
  18.                         {
  19.                                 ns+=n_s;
  20.                                 if(ns>=60)
  21.                                 {
  22.                                         nm=m+1;
  23.                                         ns=s-60;
  24.                                         if(nm>=60)
  25.                                         {
  26.                                                 nh=h+1;
  27.                                         }
  28.                                 }
  29.                         }
  30.                         if(n_s>=60)
  31.                         {
  32.                                 nm=m+n_s/60;
  33.                                 ns=s+n_s%60;
  34.                                 if(m>=60)
  35.                                 {
  36.                                         nh=h+1;
  37.                                 }
  38.                         }
  39.                         printf("time: %d:%d:%d\n",nh,nm,ns);
  40.                 }       
  41.         }

  42.        
  43.         return 0;
  44. }
复制代码

题目

题目
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-23 10:47:44 From FishC Mobile | 显示全部楼层
  1. #include <stdio.h>

  2. typedef struct {
  3.         int h, m, s;
  4. }Time;

  5. Time add(Time T, int n) {
  6.         Time res = T;
  7.         int over;
  8.        
  9.         res.s += n;
  10.         over = res.s / 60;
  11.         res.s %= 60;
  12.        
  13.         res.m += over;
  14.         over = res.m / 60;
  15.         res.m %= 60;
  16.        
  17.         res.h += over;
  18.         over = res.h / 24;
  19.         res.h %= 24;
  20.        
  21.         return res;
  22. }

  23. int main() {
  24.         Time A, B;
  25.         int repeat, n;
  26.         scanf("%d", &repeat);
  27.        
  28.         for(int i = 0; i < repeat; i++) {
  29.                 scanf("%d:%d:%d", &A.h, &A.m, &A.s);
  30.                 scanf("%d", &n);
  31.                 B = add(A, n);
  32.                 printf("time: %d:%d:%d\n", B.h, B.m, B.s);
  33.         }
  34. }
复制代码
输入
  1. 3
  2. 0:0:1
  3. 59
  4. 11:59:40
  5. 30
  6. 23:59:40
  7. 301
复制代码
输出
  1. time: 0:1:0
  2. time: 12:0:10
  3. time: 0:4:41
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-23 11:15:00 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <time.h>

  3. int main(void) {
  4.     int repeat; scanf("%d", &repeat);
  5.     while(repeat--) {
  6.         int sec, min, hour;
  7.         scanf("%d:%d:%d", &hour, &min, &sec);
  8.         int n; scanf("%d", &n);
  9.         time_t time = sec + (time_t)min * 60 + (time_t)hour * 60 * 60;
  10.         time += n;
  11.         struct tm tm;
  12.         localtime_r(&time, &tm);
  13.         printf("time: %02d:%02d:%02d\n", tm.tm_hour - 8, tm.tm_min, tm.tm_sec);
  14.     }
  15.     return 0;
  16. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-24 18:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表