2022-2023-1 20221312 《计算机基础与程序设计》第六周学习总结

作业信息

班级链接:首页 - 2022-2023-1-计算机基础与程序设计 - 北京电子科技学院 - 班级博客 - 博客园 (cnblogs.com)


作业要求:2022-2023-1 《计算机基础与程序设计》教学进程 - 娄老师 - 博客园 (cnblogs.com)


作业目标:了解数据查找方式以及其中的时间复杂度,学习结构名称,复习巩固C语言语法知识

作业正文:2022-2023-1 20221312 《计算机基础与程序设计》第六周学习总结 - 20221312付安旭 - 博客园 (cnblogs.com)

教材学习内容总结

学习了数组中各种查找数据的方式,了解了各种代码对应的结构,对C语言语法知识有了进一步巩固。

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

  • 问题1:在进制转化的程序中,最终结果只有第一位会正确展示,其余各位都显示0.
  • 问题1解决方案:经询问前辈和老师,知道了malloc函数在使用过程中,会覆盖所有已经借出的内存,导致原来的赋值被初始化为0。 为了解决该问题,可以事先定义以个较大的数组存储数据,或者先计算位数再借取空间。

     

     不过C99及以上的版本是可以用变量定义数组大小的。这时候也不太需要用malloc借空间

  • 问题2:在计算兔子繁衍问题时,程序运行时卡住。
  • 问题2解决方案:个人分析时,认为一个递推循环过程中需要的计算太多,导致程序进展缓慢,后来发现我这种算法也是错误的。

     

     应该是只定义一个children1即可,对题目分析错误了。

     事实上这就是斐波那契数列。

  • 问题3:编译过程中找不到头文件对应函数。
  • 问题3现状:个人目前未解决该问题,希望在未来查到原因

代码托管

不过个人也写了其他代码,不过测试样例体现不出来是干什么的。可以去码云看一下备注”WEEK6“的代码。

上周考试错题总结

  • 错题:
    Assembly language instructions are executed directly by the hardware of a particular computer.
    正确答案: 错误       个人作答: 正确
    错选原因:汇编语言应该先转化为机器语言,才能被机器硬件执行。

感悟

1.算法真是博大精深,排序方式的不同,时间复杂度也是不同的,而且通常时间优先度比较高,这就要求我们选择更优算法.

  或许对语言语法有了基本的掌握后,就可以注重算法了吧。

2.有高中同学向我推荐了一道算法题,输入一个整数n, 求n的阶乘的位数。特意强调了n最大是10^7.

  那这肯定不能直接算,但我找不到什么方法去计算位数。

  后来同学告诉我,<math.h>里有个log函数可以取对数。

  那这题瞬间简单不少了,不必担心溢出了。

  如此看来,想要做算法题,还是要对语言有更充足的理解。C语言里一些奇妙的函数能极大简化运算。

  可是个人感觉这更像C语言基础考察题,不能叫算法题。

3.卡点交作业还是有点危险了。

学习进度条

  代码行数(新增/累计) 博客量(新增/累计) 学习时间(新增/累计)  重要成长
第一周 0/0 4/4 12/12  
第二周 230/230 2/6 30/42  
第三周 160/390 5/11 18/60  
第四周 200/590 2/13 14/74  
第五周 180/770 2/15 10/84  
第六周 700/1470 5/20 20/104  

参考资料

1.计算机科学概论(原书第7版) (豆瓣) (douban.com)

2.C语言程序设计(第4版) (豆瓣) (douban.com)

3.啊哈!算法 (豆瓣) (douban.com)

4.十大经典排序算法(动图演示) - 一像素 - 博客园 (cnblogs.com)

posted @ 2022-10-09 22:46  20221312付安旭  阅读(42)  评论(0编辑  收藏  举报