简单时间计算(顺序-选择)

计算两时间的差值(顺序、选择) 

时间限制1s

内存限制128MB

题目描述

给定两个时间,计算两个时间的差值。

输入

给定的第一个时间一定比第二个时间大

#include"stdio.h"

int main() {
    int h1, h2, h3, m1, m2, m3, s1, s2, s3;
    scanf("%d:%d:%d", &h1, &m1, &s1);
    scanf("%d:%d:%d", &h2, &m2, &s2);
    if (h1 ==h2) {
        if (m1 ==m2) h3 = 0, m3 = 0, s3 = s1 - s2;
        else if (s1 >= s2) h3 = 0, m3 = m1 - m2, s3 = s1 - s2;
        else if (s1 < s2) h3 = 0, m3 = m1 - m2 - 1, s3 = 60 + s1 - s2;
    } else {
        if (s1 >= s2) {
            s3 = s1 - s2;
            if (m1 >= m2) m3 = m1 - m2, h3 = h1 - h2;
            else m3 = m1 + 60 - m2, h3 = h1 - 1 - h2;
        } else {
            s3 = s1 + 60 - s2;
            m3 = m1 - m2 - 1;
            if (m3 >= 0) h3 = h1 - h2;
            else h3 = h1 - h2 - 1;

        }
          
    }
    printf("%d:%d:%d", h3, m3, s3);
    return 0;
}

 //当发现if满足条件却不执行时候,大概率是条件出现了问题,例如判别是否相等==用成了赋值号=

#include"stdio.h"

int main() {
    int h1, h2, h3, m1, m2, m3, s1, s2, s3;
    scanf("%d:%d:%d", &h1, &m1, &s1);
    scanf("%d:%d:%d", &h2, &m2, &s2);
    if (h1 == h2) {
        if (m1 ==m2) {h3 = 0; m3 = 0;s3 = s1 - s2;}
        else if (s1 >= s2) {h3 = 0; m3 = m1 - m2;s3 = s1 - s2;}
         else {h3 = 0;m3 = m1 - m2 - 1; s3 = 60 + s1 - s2;}
    }

        else if (s1 >= s2) {
            s3 = s1 - s2;
            if (m1 >= m2) {m3 = m1 - m2; h3 = h1 - h2;}
            else {m3 = m1 + 60 - m2; h3 = h1 - 1 - h2;}
        }
        else {
            s3 = s1 + 60 - s2;
            m3 = m1 - m2 - 1;
            if (m3 >= 0) h3 = h1 - h2;
            else {m3=m1-m2+60;h3 = h1-h2-1;}
            }



    printf("%d:%d:%d", h3, m3, s3);
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
计算进程中的详细先后顺序通常涉及到进程调度和并发控制。下面介绍两种常见的算法和与优化有关的问题。 1. 先来先服务 (First-Come, First-Served, FCFS) 算法: 这是最简单的进程调度算法,按照进程到达的先后顺序进行调度。当一个进程运行时,其他进程需要等待。优化方面,可以考虑使用短作业优先 (Shortest Job Next, SJN) 算法,将更短的作业先调度,以减少平均等待时间。 2. 时间片轮转 (Round Robin, RR) 算法: 这是一种基于时间片的调度算法,每个进程被分配一个固定长度的时间片,当时间片用完后,系统会切换到下一个进程。优化方面,可以调整时间片长度以平衡响应时间和吞吐量。 在并发控制中,要确保进程之间的操作按照正确的顺序执行,可以使用以下算法: 1. 互斥锁 (Mutex): 使用互斥锁可以保证只有一个进程能够访问共享资源,在进程访问资源之前获取锁,在完成后释放锁。优化方面,可以考虑使用读写锁 (Read-Write Lock) 来允许多个进程同时读取共享资源,以提高并发性能。 2. 信号量 (Semaphore): 信号量可以用来控制对共享资源的访问,通过计数器的方式来限制同时访问的进程数量。优化方面,可以使用无忙等待的信号量 (Non-busy Waiting Semaphore) 算法来避免不必要的忙等待,提高效率。 在优化方面,可以根据具体应用场景和需求选择适当的算法,并进行性能测试和调整。此外,还可以考虑并行计算、任务划分和调度策略等方法来提高进程执行的效率和并发性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Canan猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值