首页 > 编程语言 >#2023-2024-1 20231408《计算机基础与程序设计》第十三周学习总结

#2023-2024-1 20231408《计算机基础与程序设计》第十三周学习总结

时间:2023-12-24 18:33:39浏览次数:44  
标签:20 字节 int 30 20231408 2024 2023 对齐 结构

作业信息

这个作业属于哪个课程 <2023-2024-1-计算机基础与程序设计>
这个作业要求在哪里 <2023-2024-1计算机基础与程序设计第十三周作业>
这个作业的目标 <《C语言程序设计》第12章,上周测试题>
作业正文 https://www.cnblogs.com/jfxyh061028/p/17924320.html

教材学习内容总结

  • C语言数据结构里构造类型中的结构体(构造类型就是可以允许用户自定义数据类型的数据类型,用于解决基本数据类型在表示复杂数据对象时不够的问题
  • 结构体的定义(注意结构体模板的定义与结构体变量的定义,成员的引用,向函数传递结构体变量
  • 结构体数组,结构体指针。
  • 不常用的共用体,链表等。

教材学习中的问题和解决过程变量的数据类型和对齐方式来决定的。

在C语言中,结构体的对齐方式是按照最大成员变量长度进行对齐的。例如,如果结构体中有一个成员变量是int类型,那么该结构体的起始地址必须是4的倍数,因为int类型在大多数机器上占用4个字节。如果结构体中有一个成员变量是char类型,那么该结构体的起始地址可以是任意地址,因为char类型只占用1个字节。

此外,编译器还会在结构体成员变量之间添加填充字节,以满足对齐要求。例如,如果结构体中有一个成员变量是short类型,而结构体的起始地址不是2的倍数,那么编译器会在该成员变量前面添加1个字节的填充字节,以使其对齐到2的倍数。在计算机系统中,对齐(Alignment)是指数据在内存中存储时的起始位置,以及后续数据项存储的位置规则。对齐是由硬件架构和编译器规定的,它影响着数据的访问速度和存储空间的利用效率。

在许多计算机体系结构中,特定类型的数据需要按照特定的字节边界对齐,也就是说数据的存储地址必须是某个特定值的倍数。例如,一个int类型通常需要按4字节对齐,也就是说它的地址必须是4的倍数。如果数据没有按照要求对齐,可能会导致性能下降或者出现错误。

对齐的原因在于硬件访问内存的效率。在许多体系结构中,对齐的数据访问速度比不对齐的数据要快,因为对齐的数据可以更容易地被加载到寄存器中,而不需要多次内存访问。

编译器会根据目标体系结构的对齐要求,对数据进行适当的对齐处理,以确保数据存储在内存中时满足对齐要求。在一些编程语言中,程序员也可以通过特定的语法或者编译器指令来指定数据的对齐方式。

总之,结构体的内存布局是由成员变量的数据类型和对齐方式决定的。在实际编程中,我们可以使用sizeof运算符来获取结构体的大小,以便正确地分配内存空间。

代码调试中的问题和解决过程

  • 1:如果数据的输出格式与该数据被定义的格式不符,就会输出0。所以要保持一致。
  • 2:有些算法可以简化,如对于这个要求

小明养成了定闹钟的习惯,定闹钟时,设定好闹钟后,会显示闹钟时间距离现在还有多长时间。若闹钟时间小于当前时间,则指的是第2天的这个时间。你的任务是编写程序,计算闹钟时间距离现在还有多长时间。

我写的

#include <stdio.h>
int main()
{
    int a,b,c,d,e,f;
    scanf("%2d:%2d\n%2d:%2d",&a,&b,&c,&d);
    if(a<c)
    {
        e=((c*60+d)-(a*60+b))/60;
        f=((c*60+d)-(a*60+b))%60;
    }
    else if(a==c)
    {
        if(b<=d)
        {
            e=0;
            f=d-b;
        }
        else
        {
            e=23;
            f=60-(b-d);
        }
    }
    else
    {
        e=(((c+24)*60+d)-(a*60+b))/60;
        f=(((c+24)*60+d)-(a*60+b))%60;
    }
    printf("%.2d:%.2d\n",e,f);
    return 0;
}

比较麻烦,其实不用分这么多种情况。

#include <stdio.h>

int main() {
    int currentHour, currentMinute, alarmHour, alarmMinute;
    scanf("%d:%d", &currentHour, &currentMinute);
    scanf("%d:%d", &alarmHour, &alarmMinute);

    int currentTotalMinutes = currentHour * 60 + currentMinute;
    int alarmTotalMinutes = alarmHour * 60 + alarmMinute;

    if (alarmTotalMinutes <= currentTotalMinutes) {
        alarmTotalMinutes += 24 * 60; // 若闹钟时间小于当前时间,则指的是第2天的这个时间
    }

    int timeDifference = alarmTotalMinutes - currentTotalMinutes;
    int hours = timeDifference / 60;
    int minutes = timeDifference % 60;

    printf("%02d:%02d\n", hours, minutes);
    return 0;
}

只要一次比较就可以了。

基于AI的学习



学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时 优秀
第一周 2/3 20/20 合格
第二周 20/20 1/4 15/35 终于理解了一些概念,能看懂一些话了
第三周 20/40 1/5 20/55
第四周 50 /90 2/7 20/75
第五周 80/170 1/8 30/105 会编写一些简单程序了
第六周 30/200 2/10 30/135 编程水平提升了
第七周 30/230 1/11 25/160 编程得更熟,也知道了计算机方面更多粗浅的知识。
第八周 60/290 2/13 30/190 对于高级语言的一致性有了认识。
第九周 100/390 1/14 30/230
第十周 100/490 2/16 30/260
第十一周 150/640 2/18 30/290
第十二周 200/840 1/19 30/320
第十三章 200/1040 1/20 20/340

标签:20,字节,int,30,20231408,2024,2023,对齐,结构
From: https://www.cnblogs.com/jfxyh061028/p/17924320.html

相关文章

  • 再创佳绩!拓数派荣获 2023年度技术卓越奖
    近日,由知名IT信息科技门户网站IT168正式公布了“2023年度技术卓越奖”评选结果,拓数派凭借自主研发的大模型数据计算系统「πDataCS」斩获2023年度技术卓越奖奖项。拓数派本次获得年度技术卓越奖是市场、媒体、与社区的多重认可成果,充分肯定了拓数派的技术研发实力与产品创新......
  • 学期2023-2024-1 20231409 《计算机基础与程序设计》第十三周学习总结
    学期2023-2024-120231409《计算机基础与程序设计》第十三周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十三周作业这个作业的目标自学《C语言程序设计》第十二章并完成云班课测试......
  • Pycharm最新版2023.3.1激活教程 亲测有效
    第一步:官网下载安装包官网下载链接https://www.jetbrains.com/pycharm/download直接点击Download下载,等待安装程序下载完成。第二步:安装Pycharm最新版惯例哈,安装新版本之前先卸载老版本的程序,然后再安装新的。这里演示,默认安装路径了,最好安装在非系统盘路径,防止后期越用越大,电脑卡......
  • 2023-2024-1 20231317《计算机基础与程序设计》第十三周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2023-2024-1计算机基础与程序设计第一周作业)这个作业的目标<《C语言第12章》>作业正文https://www.cnblogs.com/TerMo/p/17924086.html本......
  • 2023-2024-1 学号20231310《计算机基础与程序设计》第十三周学习总结
    作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十三周作业这个作业的目标自学教材《C语言程序设计》第12章并完成云班课测试作业正文2023-2024-120231310《计算机基础与程序设计》第十三......
  • POLIR-Int-Generative AI in 2024: The 6 most important consumer tech trends for n
    GenerativeAIin2024:The6mostimportantconsumertechtrendsfornextyearQualcommexecutivesrevealkeytrendsinAI,consumertechnologyandmoreforthefutureDEC15,2023SnapdragonandQualcommbrandedproductsareproductsofQualcommTechnol......
  • 2023 年最受欢迎的 12 款 Chrome 浏览器扩展
    掘金2023年度人气创作者打榜中,快来帮我打榜吧~谷歌浏览器Chrome是目前最受欢迎的浏览器之一,而浏览器扩展则是为了提升用户体验和功能而开发的插件。2023年谷歌公布了12款最受欢迎的Chrome浏览器扩展。每个都提供独特的功能来增强您的浏览体验。以下是它们的详细介绍:Speechify:将......
  • 2023-2024-1 20231420 《计算机基础与程序设计》第十三周学习总结
    2023-2024-120231420《计算机基础与程序设计》第十三周学习总结1.作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业要求在哪里2023-2024-1计算机基础与程序设计第十三周作业这个作业的目标学习《C语言程序设计》第12章并完成云班课测......
  • 融云数智办公获 IT168「2023 年度信创卓越贡献奖」
    近期,业界知名IT垂直门户媒体 IT168 正式揭晓其年度大型评选“2023年技术卓越奖”结果,融云榜上有名。关注【融云RongCloud】,了解协同办公平台更多干货。融云数智办公作为信创领域明星产品荣获“2023年度信创卓越贡献奖”。复杂多变的世界经济环境下,技术创新依然是主旋律。人......
  • 2023-2024-1 20211319《计算机基础与程序设计》第十三周学习总结
    2023-2024-120211319《计算机基础与程序设计》第十三周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13这个作业的目标<写上具体方面>作业正......