关于几点钟问题 我的这个代码应该怎么调

img


#include <stdio.h>

int main()
{
    int begin,period,b,c,d,e;
    scanf("%d %d",&begin,&period);
    b=begin/100*60+begin%100;
    c=b+period;
    d=c/60;
    e=c-c/60;
    printf("%d%d%d",d,e/10,e%10);
    return 0;
} 

img

求问我这个代码应该怎么改才能对

0001 60
应该输出
0101

img


这样改

#include <stdio.h>
 
int main()
{
    int begin,period,b,c,d,e;
    scanf("%d %d",&begin,&period);
    b=begin/100*60+begin%100;
    c=b+period;
    d=c/60;
    e=c%60; //这里
    printf("%d%d%d",d,e/10,e%10);
    return 0;
} 

应该是e=c%60
除以60是小时,模上60是分钟
你的这样改:

#include <stdio.h>
 int main()
{
    int begin,period,b,c,d,e;
    scanf("%d %d",&begin,&period);
    b=begin/100*60+begin%100;
    c=b+period;
    d=c/60;
    e=c%60; 
    printf("%d%d%d",d,e/10,e%10);
    return 0;
} 

我还有一种方法,你需要的话可以给你

修改如下,供参考:

#include <stdio.h>
int main()
{
    int begin,period;
    scanf("%d %d",&begin,&period);
    int h = begin / 100;
    int m = begin % 100;
    int sum = h * 60 + m + period;
    h = sum / 60;
    m = sum % 60;
    int nexttime = h * 100 + m;
    printf("%d",nexttime);
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7762018
  • 你也可以参考下这篇文章:【数据结构与算法】冒泡排序详解(含代码)
  • 除此之外, 这篇博客: 舍友仅仅打了一把游戏,我就学会了如何实现用中断控制数码管各位的显示中的 二、代码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    #include<reg51.h> // 引入头文件
    unsigned int right,left,temp; // 定义个位,十位,中间转换变量,个位保存的变量
    void main(){
    	P2 = 0x00; // 初始化
    	EA = 1;	// 总中断
    	EX0 = 1;	// 外部中断0
    	IT0 = 1;	// 触发方式	下降沿
    	
    	EX1 = 1;	// 外部中断1
    	IT1 = 1;	// 触发方式 下降沿
    	while(1);
    }
    
    // 外部中断0的服务子程序
    void first() interrupt 0{
    	left++;	// 十位++
    	temp = left%10<<4|right%10; // 取十位的余数 左移 + 个位取余
    	P2 = temp; 
    }
    
    // 外部中断1的服务子程序
    void second() interrupt 2{
    	if(right>9){ // 大于九,十位++ 再加上个位
    	left++;
    	P2=left%10<<4|right%10;
    	right=0;
    	}else{
    		right++;	// 个位++
    		P2=left%10<<4|right%10;		
    	}		
    }
    
    
  • 您还可以看一下 易文星老师的手把手教你实现人脸识别支付系统课程中的 代码解读之模型的构建和训练之一小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    对于代码时间优化问题,以下是一些建议和方法:

    1. 算法优化:
    2. 检查代码中的循环结构和嵌套,确定是否有不必要的重复计算或冗余代码。
    3. 查找可以使用更高效的算法来代替当前的算法,比如使用快速排序代替冒泡排序。
    4. 尽可能减少循环次数或操作次数,比如通过使用查找表来避免重复计算。

    5. 数据结构优化:

    6. 选择合适的数据结构来存储和访问数据,比如使用哈希表或二叉搜索树来提高查找操作的效率。
    7. 考虑使用缓存和索引来存储和访问数据,以减少读写操作的次数。

    8. 并行化和并发优化:

    9. 将独立的任务分解为并行执行的子任务,利用多核处理器的能力提高整体的执行效率。
    10. 使用线程池或并发编程框架来管理任务的执行,避免线程创建和销毁的开销。

    11. 延迟加载和惰性计算:

    12. 避免提前加载和计算不需要的数据或结果,以节省内存和计算资源。
    13. 采用惰性计算的方式,只在需要时才进行计算和处理。

    14. 编译器和运行时优化:

    15. 使用优化编译器选项,比如GCC的-O2或-O3选项,以生成更高效的机器码。
    16. 考虑使用JIT编译器或即时编译技术来提升代码的执行效率。

    下面是代码示例,展示如何通过惰性计算的方式延迟加载数据:

    class LazyDataLoader:
        def __init__(self, file_path):
            self.file_path = file_path
            self.data = None
    
        def load_data(self):
            if self.data is None:
                # 延迟加载数据
                self.data = self._load_from_file(self.file_path)
            return self.data
    
        def _load_from_file(self, file_path):
            # 从文件中加载数据的实现
            pass
    
    # 使用示例
    data_loader = LazyDataLoader("data.txt")
    data = data_loader.load_data()
    # 访问数据
    print(data)
    

    在以上示例中,使用了一个LazyDataLoader类来实现数据的延迟加载。通过调用load_data方法,可以在需要时加载数据,而不是在对象初始化时就加载。这种方式可以避免不必要的加载操作,提高代码的执行效率。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^